aboutsummaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2024-03-15 09:13:05 +0100
committerKarel Kočí <cynerd@email.cz>2024-03-15 16:57:21 +0100
commita48d057700c636666a5e835cbcb0b667848008c2 (patch)
tree6e6dc0b9fcf2e85415c2f66b2beb567403be73ca /flake.nix
parent422ef34e58bc8a187594779d95ef8d74e8332a47 (diff)
downloadnixos-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.nix65
1 files changed, 43 insertions, 22 deletions
diff --git a/flake.nix b/flake.nix
index 33b647d..945f722 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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;