mirror of
https://github.com/Gerg-L/nixos.git
synced 2025-12-10 08:53:56 -05:00
82 lines
2 KiB
Nix
82 lines
2 KiB
Nix
inputs @ {
|
|
unstable,
|
|
self,
|
|
...
|
|
}: let
|
|
inherit (unstable) lib;
|
|
|
|
listNixFilesRecursive = path:
|
|
builtins.filter (lib.hasSuffix "nix")
|
|
(lib.filesystem.listFilesRecursive path);
|
|
|
|
importAll = path:
|
|
map
|
|
(module: (import module inputs))
|
|
(listNixFilesRecursive path);
|
|
|
|
mkModules = path:
|
|
lib.listToAttrs (
|
|
map (
|
|
name: {
|
|
name = lib.pipe name [
|
|
toString
|
|
(lib.removeSuffix ".nix")
|
|
(lib.removePrefix "${toString path}/")
|
|
];
|
|
value = import name inputs;
|
|
}
|
|
)
|
|
(listNixFilesRecursive path)
|
|
);
|
|
in {
|
|
inherit importAll mkModules listNixFilesRecursive;
|
|
|
|
gerg-utils = config: f:
|
|
lib.fold lib.recursiveUpdate {}
|
|
(map (system:
|
|
f {
|
|
inherit system;
|
|
pkgs =
|
|
if config == {}
|
|
then unstable.legacyPackages.${system}
|
|
else
|
|
import unstable {
|
|
inherit system config;
|
|
};
|
|
}) ["x86_64-linux"]);
|
|
#"x86_64-darwin" "aarch64-linux" "aarch64-darwin"
|
|
|
|
mkHosts = system: names:
|
|
lib.genAttrs names (
|
|
name:
|
|
# Whats lib.nixosSystem? never heard of her
|
|
lib.evalModules {
|
|
specialArgs.modulesPath = "${unstable}/nixos/modules";
|
|
|
|
modules =
|
|
builtins.attrValues self.nixosModules
|
|
++ importAll "${self}/hosts/${name}"
|
|
++ [
|
|
{
|
|
networking.hostName = name;
|
|
nixpkgs.hostPlatform = system;
|
|
}
|
|
]
|
|
++ (import "${unstable}/nixos/modules/module-list.nix");
|
|
}
|
|
);
|
|
mkDisko = names:
|
|
lib.genAttrs names (
|
|
name: (import "${self}/hosts/${name}/disko.nix" inputs)
|
|
);
|
|
|
|
mkPackages = path: pkgs:
|
|
builtins.listToAttrs (
|
|
map (module: {
|
|
name = lib.removeSuffix ".nix" (builtins.baseNameOf module);
|
|
value = pkgs.callPackage module {};
|
|
})
|
|
(listNixFilesRecursive path)
|
|
);
|
|
_file = ./default.nix;
|
|
}
|