mirror of
https://github.com/thegeneralist01/config.git
synced 2026-03-07 10:59:55 +01:00
refactor: hosts' systems & modules
This commit is contained in:
parent
0e465f6c84
commit
37c4eeaca6
7 changed files with 77 additions and 125 deletions
|
|
@ -28,10 +28,6 @@
|
||||||
url = "github:oxalica/nil";
|
url = "github:oxalica/nil";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
# wrapper-manager = {
|
|
||||||
# url = "github:viperML/wrapper-manager";
|
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
# };
|
|
||||||
#nix.url = "github:DeterminateSystems/nix-src";
|
#nix.url = "github:DeterminateSystems/nix-src";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -40,7 +36,8 @@
|
||||||
inherit (nixpkgs.lib) attrsToList const groupBy listToAttrs mapAttrs;
|
inherit (nixpkgs.lib) attrsToList const groupBy listToAttrs mapAttrs;
|
||||||
#nix.enable = false;
|
#nix.enable = false;
|
||||||
|
|
||||||
lib = nixpkgs.lib // nix-darwin.lib;
|
lib' = nixpkgs.lib.extend (_: _: nix-darwin.lib);
|
||||||
|
lib = lib'.extend <| import ./lib inputs;
|
||||||
|
|
||||||
targetHost = readDir ./hosts
|
targetHost = readDir ./hosts
|
||||||
|> mapAttrs (name: const <| import ./hosts/${name} lib inputs self)
|
|> mapAttrs (name: const <| import ./hosts/${name} lib inputs self)
|
||||||
|
|
|
||||||
|
|
@ -1,30 +1 @@
|
||||||
lib: inputs: self: lib.darwinSystem {
|
lib: inputs: self: lib.system "darwin" ./configuration.nix
|
||||||
specialArgs = inputs // { inherit inputs; inherit self; };
|
|
||||||
modules = [
|
|
||||||
# Extensions: nixosModules, darwinModules, overlays
|
|
||||||
({ pkgs, lib, inputs, ... }: let
|
|
||||||
inherit (lib) attrValues hasAttrByPath getAttrFromPath filter;
|
|
||||||
|
|
||||||
collect = packagePath: (attrValues inputs)
|
|
||||||
|> filter (hasAttrByPath packagePath)
|
|
||||||
|> map (getAttrFromPath packagePath);
|
|
||||||
|
|
||||||
modules = collect [ "darwinModules" "default" ];
|
|
||||||
extensions = {
|
|
||||||
nixpkgs.overlays = collect [ "overlays" "default" ];
|
|
||||||
imports = modules;
|
|
||||||
};
|
|
||||||
in extensions)
|
|
||||||
|
|
||||||
./configuration.nix
|
|
||||||
|
|
||||||
# Modules
|
|
||||||
({ pkgs, ... }: let
|
|
||||||
inherit (lib) filter hasSuffix;
|
|
||||||
commonModules = lib.filesystem.listFilesRecursive ../../modules/common |> filter (hasSuffix ".nix");
|
|
||||||
darwinModules = lib.filesystem.listFilesRecursive ../../modules/darwin |> filter (hasSuffix ".nix");
|
|
||||||
in {
|
|
||||||
imports = commonModules ++ darwinModules;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,30 +1 @@
|
||||||
lib: inputs: self: lib.nixosSystem {
|
lib: inputs: self: lib.system "linux" ./configuration.nix
|
||||||
specialArgs = inputs // { inherit inputs; inherit self; };
|
|
||||||
modules = [
|
|
||||||
# Extensions: nixosModules, darwinModules, overlays
|
|
||||||
({ pkgs, lib, inputs, ... }: let
|
|
||||||
inherit (lib) attrValues hasAttrByPath getAttrFromPath filter;
|
|
||||||
|
|
||||||
collect = packagePath: (attrValues inputs)
|
|
||||||
|> filter (hasAttrByPath packagePath)
|
|
||||||
|> map (getAttrFromPath packagePath);
|
|
||||||
|
|
||||||
modules = collect [ "nixosModules" "default" ];
|
|
||||||
extensions = {
|
|
||||||
nixpkgs.overlays = collect [ "overlays" "default" ];
|
|
||||||
imports = modules;
|
|
||||||
};
|
|
||||||
in extensions)
|
|
||||||
|
|
||||||
./configuration.nix
|
|
||||||
|
|
||||||
# Modules
|
|
||||||
({ pkgs, ... }: let
|
|
||||||
inherit (lib) filter hasSuffix;
|
|
||||||
commonModules = lib.filesystem.listFilesRecursive ../../modules/common |> filter (hasSuffix ".nix");
|
|
||||||
linuxModules = lib.filesystem.listFilesRecursive ../../modules/linux |> filter (hasSuffix ".nix");
|
|
||||||
in {
|
|
||||||
imports = commonModules ++ linuxModules;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,30 +1 @@
|
||||||
lib: inputs: self: lib.darwinSystem {
|
lib: inputs: self: lib.system "darwin" ./configuration.nix
|
||||||
specialArgs = inputs // { inherit inputs; inherit self; };
|
|
||||||
modules = [
|
|
||||||
# Extensions: nixosModules, darwinModules, overlays
|
|
||||||
({ pkgs, lib, inputs, ... }: let
|
|
||||||
inherit (lib) attrValues hasAttrByPath getAttrFromPath filter;
|
|
||||||
|
|
||||||
collect = packagePath: (attrValues inputs)
|
|
||||||
|> filter (hasAttrByPath packagePath)
|
|
||||||
|> map (getAttrFromPath packagePath);
|
|
||||||
|
|
||||||
modules = collect [ "darwinModules" "default" ];
|
|
||||||
extensions = {
|
|
||||||
nixpkgs.overlays = collect [ "overlays" "default" ];
|
|
||||||
imports = modules;
|
|
||||||
};
|
|
||||||
in extensions)
|
|
||||||
|
|
||||||
./configuration.nix
|
|
||||||
|
|
||||||
# Modules
|
|
||||||
({ pkgs, ... }: let
|
|
||||||
inherit (lib) filter hasSuffix;
|
|
||||||
commonModules = lib.filesystem.listFilesRecursive ../../modules/common |> filter (hasSuffix ".nix");
|
|
||||||
darwinModules = lib.filesystem.listFilesRecursive ../../modules/darwin |> filter (hasSuffix ".nix");
|
|
||||||
in {
|
|
||||||
imports = commonModules ++ darwinModules;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,30 +1 @@
|
||||||
lib: inputs: self: lib.nixosSystem {
|
lib: inputs: self: lib.system "linux" ./configuration.nix
|
||||||
specialArgs = inputs // { inherit inputs; inherit self; };
|
|
||||||
modules = [
|
|
||||||
# Extensions: nixosModules, darwinModules, overlays
|
|
||||||
({ pkgs, lib, inputs, ... }: let
|
|
||||||
inherit (lib) attrValues hasAttrByPath getAttrFromPath filter;
|
|
||||||
|
|
||||||
collect = packagePath: (attrValues inputs)
|
|
||||||
|> filter (hasAttrByPath packagePath)
|
|
||||||
|> map (getAttrFromPath packagePath);
|
|
||||||
|
|
||||||
modules = collect [ "nixosModules" "default" ];
|
|
||||||
extensions = {
|
|
||||||
nixpkgs.overlays = collect [ "overlays" "default" ];
|
|
||||||
imports = modules;
|
|
||||||
};
|
|
||||||
in extensions)
|
|
||||||
|
|
||||||
./configuration.nix
|
|
||||||
|
|
||||||
# Modules
|
|
||||||
({ pkgs, ... }: let
|
|
||||||
inherit (lib) filter hasSuffix;
|
|
||||||
commonModules = lib.filesystem.listFilesRecursive ../../modules/common |> filter (hasSuffix ".nix");
|
|
||||||
linuxModules = lib.filesystem.listFilesRecursive ../../modules/linux |> filter (hasSuffix ".nix");
|
|
||||||
in {
|
|
||||||
imports = commonModules ++ linuxModules;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
|
||||||
5
lib/default.nix
Normal file
5
lib/default.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
inputs: self: super:
|
||||||
|
let
|
||||||
|
system = import ./system.nix inputs self super;
|
||||||
|
in
|
||||||
|
system
|
||||||
66
lib/system.nix
Normal file
66
lib/system.nix
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
inputs: self: super:
|
||||||
|
let
|
||||||
|
inherit (self)
|
||||||
|
hasSuffix
|
||||||
|
filesystem
|
||||||
|
attrValues
|
||||||
|
filter
|
||||||
|
getAttrFromPath
|
||||||
|
hasAttrByPath
|
||||||
|
;
|
||||||
|
|
||||||
|
collectModules = path: filesystem.listFilesRecursive path |> filter (hasSuffix ".nix");
|
||||||
|
|
||||||
|
collectInputModules =
|
||||||
|
packagePath:
|
||||||
|
(attrValues inputs) |> filter (hasAttrByPath packagePath) |> map (getAttrFromPath packagePath);
|
||||||
|
|
||||||
|
specialArgs = inputs // {
|
||||||
|
inherit inputs;
|
||||||
|
inherit self;
|
||||||
|
};
|
||||||
|
|
||||||
|
# All modules
|
||||||
|
modulesCommon = collectModules ../modules/common;
|
||||||
|
modulesLinux = collectModules ../modules/linux;
|
||||||
|
modulesDarwin = collectModules ../modules/darwin;
|
||||||
|
|
||||||
|
inputModulesNixos = collectInputModules [
|
||||||
|
"nixosModules"
|
||||||
|
"default"
|
||||||
|
];
|
||||||
|
inputModulesDarwin = collectInputModules [
|
||||||
|
"darwinModules"
|
||||||
|
"default"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Overlays
|
||||||
|
overlays = collectInputModules [
|
||||||
|
"overlays"
|
||||||
|
"default"
|
||||||
|
];
|
||||||
|
|
||||||
|
overlayModules = {
|
||||||
|
nixpkgs.overlays = overlays;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
system =
|
||||||
|
os: configFile:
|
||||||
|
if os == "darwin" then
|
||||||
|
super.darwinSystem
|
||||||
|
else
|
||||||
|
super.nixosSystem {
|
||||||
|
inherit specialArgs;
|
||||||
|
|
||||||
|
modules =
|
||||||
|
[
|
||||||
|
overlayModules
|
||||||
|
configFile
|
||||||
|
]
|
||||||
|
++ modulesCommon
|
||||||
|
++ (
|
||||||
|
if os == "darwin" then modulesDarwin ++ inputModulesDarwin else modulesLinux ++ inputModulesNixos
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue