From 2d8a95d6b36ec8ce5562e1f8d4382ae582c231aa Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Mon, 27 Jun 2022 19:13:10 +0200 Subject: [PATCH] Move the MkSomething functions into separate files --- flake.nix | 68 +++++++++++++-------------------------------- lib/mk_computer.nix | 24 ++++++++++++++++ lib/mk_raspi.nix | 24 ++++++++++++++++ 3 files changed, 67 insertions(+), 49 deletions(-) create mode 100644 lib/mk_computer.nix create mode 100644 lib/mk_raspi.nix diff --git a/flake.nix b/flake.nix index 7c0f8f7..7d94506 100644 --- a/flake.nix +++ b/flake.nix @@ -35,8 +35,12 @@ }: let custom = import ./custom; + mkComputer = import "${self}/lib/mk_computer.nix"; + mkRaspi = import "${self}/lib/mk_raspi.nix"; + system = custom.system; username = custom.username; + overlay-unstable = final: prev: { unstable = import nixpkgs-unstable { system = custom.system; @@ -54,107 +58,73 @@ inputs.nix-alien.overlay ]; }; - - mkComputer = { hostname, system ? "x86_64-linux", home-module ? "headless" }: nixpkgs.lib.nixosSystem { - inherit system pkgs; - specialArgs = { inherit custom inputs; }; - modules = ( - [ - # System configuration for this host - "${self}/systems/${hostname}" - - # Common configuration - "${self}/modules/common-x86" - - agenix.nixosModules.age - { environment.systemPackages = [ agenix.defaultPackage.${system} ]; } - - home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.${custom.username}.imports = [ - (import "${self}/home-manager/${home-module}.nix" { inherit custom pkgs inputs; }) - ]; - } - ]); - }; - mkRaspi = { hostname, system ? "aarch64-linux", home-module ? "headless" }: nixpkgs.lib.nixosSystem { - inherit system; - specialArgs = { inherit custom inputs; }; - modules = ( - [ - # System configuration for this host - "${self}/systems/${hostname}" - - # Common configuration - ./modules/common - - agenix.nixosModules.age - { environment.systemPackages = [ agenix.defaultPackage.${system} ]; } - - home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.${custom.username}.imports = [ - (import "${self}/home-manager/${home-module}.nix" { inherit custom pkgs inputs; }) - ]; - } - ]); - }; in { nixosConfigurations = { gwyn = mkComputer { hostname = "gwyn"; home-module = "desktop"; + inherit custom pkgs inputs self; }; nixos-vm = mkComputer { hostname = "desktop-vm"; home-module = "desktop"; + inherit custom pkgs inputs self; }; staubfinger = mkComputer { hostname = "staubfinger"; home-module = "desktop"; + inherit custom pkgs inputs self; }; # Servers git = mkComputer { hostname = "git"; + inherit custom pkgs inputs self; }; jdownloader = mkComputer { hostname = "jdownloader"; + inherit custom pkgs inputs self; }; mail = mkComputer { hostname = "mail"; + inherit custom pkgs inputs self; }; nextcloud = mkComputer { hostname = "nextcloud"; + inherit custom pkgs inputs self; }; nixos-management = mkComputer { hostname = "nixos-management"; home-module = "management"; + inherit custom pkgs inputs self; }; pihole = mkComputer { hostname = "pihole"; + inherit custom pkgs inputs self; }; plex = mkComputer { hostname = "plex"; + inherit custom pkgs inputs self; }; proxy = mkComputer { hostname = "proxy"; + inherit custom pkgs inputs self; }; raspi-test = mkRaspi { hostname = "raspi-test"; + inherit custom pkgs inputs self; }; restic-server = mkComputer { hostname = "restic-server"; + inherit custom pkgs inputs self; }; test-server = mkComputer { hostname = "test-server"; + inherit custom pkgs inputs self; }; ttrss = mkComputer { hostname = "ttrss"; + inherit custom pkgs inputs self; }; }; homeConfigurations = { diff --git a/lib/mk_computer.nix b/lib/mk_computer.nix new file mode 100644 index 0000000..6ba49b5 --- /dev/null +++ b/lib/mk_computer.nix @@ -0,0 +1,24 @@ +{ custom, hostname, inputs, pkgs, self, system ? "x86_64-linux", home-module ? "headless" }: inputs.nixpkgs.lib.nixosSystem { + inherit system pkgs; + specialArgs = { inherit custom inputs; }; + modules = ( + [ + # System configuration for this host + "${self}/systems/${hostname}" + + # Common configuration + "${self}/modules/common-x86" + + inputs.agenix.nixosModules.age + { environment.systemPackages = [ inputs.agenix.defaultPackage.${system} ]; } + + inputs.home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.${custom.username}.imports = [ + (import "${self}/home-manager/${home-module}.nix" { inherit custom pkgs inputs; }) + ]; + } + ]); +} diff --git a/lib/mk_raspi.nix b/lib/mk_raspi.nix new file mode 100644 index 0000000..ae1c336 --- /dev/null +++ b/lib/mk_raspi.nix @@ -0,0 +1,24 @@ +{ custom, hostname, inputs, pkgs, self, system ? "aarch64-linux", home-module ? "headless" }: input.nixpkgs.lib.nixosSystem { + inherit system; + specialArgs = { inherit custom inputs; }; + modules = ( + [ + # System configuration for this host + "${self}/systems/${hostname}" + + # Common configuration + "${self}/modules/common" + + inputs.agenix.nixosModules.age + { environment.systemPackages = [ inputs.agenix.defaultPackage.${system} ]; } + + inputs.home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.${custom.username}.imports = [ + (import "${self}/home-manager/${home-module}.nix" { inherit custom pkgs inputs; }) + ]; + } + ]); +}