diff options
author | Karel Kočí <cynerd@email.cz> | 2024-03-15 09:13:05 +0100 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2024-03-15 16:57:21 +0100 |
commit | a48d057700c636666a5e835cbcb0b667848008c2 (patch) | |
tree | 6e6dc0b9fcf2e85415c2f66b2beb567403be73ca /flake.nix | |
parent | 422ef34e58bc8a187594779d95ef8d74e8332a47 (diff) | |
download | nixos-personal-a48d057700c636666a5e835cbcb0b667848008c2.tar.gz nixos-personal-a48d057700c636666a5e835cbcb0b667848008c2.tar.bz2 nixos-personal-a48d057700c636666a5e835cbcb0b667848008c2.zip |
nixos: rework configurations management
Diffstat (limited to 'flake.nix')
-rw-r--r-- | flake.nix | 65 |
1 files changed, 43 insertions, 22 deletions
@@ -6,62 +6,83 @@ nixos-hardware.url = "nixos-hardware"; nixdeploy.url = "gitlab:cynerd/nixdeploy"; personal-secret.url = "git+ssh://git@cynerd.cz/nixos-personal-secret"; + shellrc.url = "git+https://git.cynerd.cz/shellrc"; agenix.url = "github:ryantm/agenix"; shvspy.url = "git+https://github.com/silicon-heaven/shvspy.git?submodules=1"; shvcli.url = "github:silicon-heaven/shvcli"; + usbkey.url = "gitlab:cynerd/usbkey"; + nixturris.url = "gitlab:cynerd/nixturris"; nixbigclown.url = "github:cynerd/nixbigclown"; vpsadminos.url = "github:vpsfreecz/vpsadminos"; - - shellrc.url = "git+https://git.cynerd.cz/shellrc"; - usbkey.url = "gitlab:cynerd/usbkey"; }; outputs = { self, - nixpkgs, flake-utils, + nixpkgs, + nixdeploy, + personal-secret, + shellrc, agenix, shvspy, shvcli, - nixdeploy, - shellrc, usbkey, + nixturris, + nixbigclown, ... }: let inherit (flake-utils.lib) eachDefaultSystem filterPackages; - inherit (nixpkgs.lib) mapAttrs' nameValuePair filterAttrs; + inherit (nixpkgs.lib) attrValues; + revision = self.shortRev or self.dirtyShortRev or "unknown"; in { - lib = import ./lib nixpkgs.lib; overlays = { - noInherit = final: prev: import ./pkgs final prev; + lib = final: prev: import ./lib prev; + pkgs = final: prev: import ./pkgs final prev; default = nixpkgs.lib.composeManyExtensions [ agenix.overlays.default - shvspy.overlays.default - shvcli.overlays.default nixdeploy.overlays.default + self.overlays.pkgs shellrc.overlays.default + shvcli.overlays.default + shvspy.overlays.default usbkey.overlays.default - self.overlays.noInherit ]; }; - nixosModules = import ./nixos self; - nixosConfigurations = import ./nixos/configurations.nix self; + + nixosModules = let + modules = import ./nixos/modules {inherit (nixpkgs) lib;}; + in + modules + // { + default = { + imports = + attrValues modules + ++ [ + nixbigclown.nixosModules.default + nixdeploy.nixosModules.default + nixturris.nixosModules.default + personal-secret.nixosModules.default + shellrc.nixosModules.default + usbkey.nixosModules.default + ]; + config = { + nixpkgs.overlays = [self.overlays.default]; + system.configurationRevision = revision; + }; + }; + }; + + nixosConfigurations = import ./nixos/configurations self; + lib = import ./lib nixpkgs.lib; } // eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages."${system}".extend self.overlays.default; in { - packages = - {default = pkgs.nixdeploy;} - // mapAttrs' (n: v: - nameValuePair - "tarball-${n}" - v.buildPlatform.${system}.config.system.build.tarball) (filterAttrs - (n: v: v.config.system.build ? tarball) - self.nixosConfigurations); + packages.default = pkgs.nixdeploy; legacyPackages = pkgs; devShells = filterPackages system (import ./devShells pkgs); formatter = pkgs.alejandra; |