diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/default.nix | 2 | ||||
-rw-r--r-- | lib/mk_darwin.nix | 23 | ||||
-rw-r--r-- | lib/mk_home.nix | 5 |
3 files changed, 26 insertions, 4 deletions
diff --git a/lib/default.nix b/lib/default.nix index d437dc6..2ed3bca 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -11,7 +11,7 @@ let mylib = makeExtensible (self: mapModules ./. - (file: import file ({ inherit lib; } // inputs))); + (file: import file ({ inherit lib inputs; } // inputs))); in mylib.extend (self: super: diff --git a/lib/mk_darwin.nix b/lib/mk_darwin.nix new file mode 100644 index 0000000..1da4dc3 --- /dev/null +++ b/lib/mk_darwin.nix @@ -0,0 +1,23 @@ +{ self, unstable, nix-darwin, ... } @ args: +{ + mkDarwin = { name, nixpkgs ? unstable, system ? "aarch64-darwin", overlays ? null, extraModules ? null }: + nix-darwin.lib.darwinSystem ( + let + configFolder = "${self}/darwin"; + entryPoint = "${configFolder}/${name}/configuration.nix"; + in + { + system = system; + pkgs = import nixpkgs { inherit system; }; + + modules = [ + { + networking.hostName = name; + system.configurationRevision = self.rev or self.dirtyRev; + } + entryPoint + ] ++ nixpkgs.lib.optional (overlays != null) { nixpkgs.overlays = overlays; } + ++ nixpkgs.lib.optionals (extraModules != null) extraModules; + } + ); +} diff --git a/lib/mk_home.nix b/lib/mk_home.nix index d416787..b7f780e 100644 --- a/lib/mk_home.nix +++ b/lib/mk_home.nix @@ -1,6 +1,6 @@ { self, home-manager, unstable, ... } @ inputs: { - mkHome = { username, hostname, pkgs, version, extraModules ? null }: + mkHome = { username, hostname, homeDirectory ? "/home/${username}", pkgs, version, extraModules ? null }: let entrypoint = "${self}/home/configs/${hostname}/${username}.nix"; defaultModule = { lib, config, ... }: { @@ -14,8 +14,7 @@ }; home = { - inherit username; - homeDirectory = "/home/${username}"; + inherit username homeDirectory; stateVersion = version; }; }; |