From 996e6dec502a862d00a3c1a859dcee72eba4d56c Mon Sep 17 00:00:00 2001 From: Julien Malka Date: Mon, 6 Nov 2023 10:20:10 +0100 Subject: [PATCH] move mkmachine in separate file --- flake.nix | 11 +++++-- lib/default.nix | 80 ----------------------------------------------- lib/luj.nix | 6 ++-- lib/mkmachine.nix | 70 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 82 insertions(+), 85 deletions(-) create mode 100644 lib/mkmachine.nix diff --git a/flake.nix b/flake.nix index 8f8a85c..e872452 100644 --- a/flake.nix +++ b/flake.nix @@ -7,7 +7,11 @@ home-manager = { url = "github:nix-community/home-manager/release-23.05"; - inputs.nixpkgs.follows = "unstable"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + home-manager-unstable = { + url = "github:nix-community/home-manager/master"; }; homepage = { @@ -17,6 +21,8 @@ unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; + unstable-plus-patches.url = "github:JulienMalka/nixpkgs/unstable-plus-patches"; + flake-utils.url = "github:numtide/flake-utils"; colmena.url = "github:zhaofengli/colmena"; @@ -73,6 +79,7 @@ let lib = nixpkgs.lib.extend (import ./lib inputs); machines_plats = lib.mapAttrsToList (name: value: value.arch) (lib.filterAttrs (n: v: builtins.hasAttr "arch" v) lib.luj.machines); + mkMachine = import ./lib/mkmachine.nix inputs lib; nixpkgs_plats = builtins.listToAttrs (builtins.map (plat: { @@ -91,7 +98,7 @@ (builtins.attrNames (builtins.readDir ./modules))); nixosConfigurations = builtins.mapAttrs - (name: value: (lib.mkMachine { + (name: value: (mkMachine { host = name; host-config = value; modules = self.nixosModules; diff --git a/lib/default.nix b/lib/default.nix index 6540ea3..f00995d 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -2,87 +2,7 @@ inputs: final: prev: with builtins; -let - overlay-unstable = arch: final: prev: - let - nixpkgs-patched-src = (import inputs.nixpkgs { system = arch; }).applyPatches { - name = "nixpkgs-patches"; - src = inputs.nixpkgs; - patches = [ ../patches/bcachefs-systemd-stage-1.patch ]; - }; - in - { - unstable = inputs.unstable.legacyPackages."${arch}"; - nixpkgs-patched = import nixpkgs-patched-src { system = arch; }; - stable = inputs.nixpkgs.legacyPackages."${arch}"; - }; -in { - - mkMachine = { host, host-config, modules, nixpkgs ? inputs.nixpkgs, system ? "x86_64-linux", home-manager ? inputs.home-manager }: - let - nixpkgs-patched-src = (import nixpkgs { inherit system; }).applyPatches { - name = "nixpkgs-patched"; - src = nixpkgs; - patches = [ ../patches/bcachefs-systemd-stage-1.patch ]; - }; - in - nixpkgs.lib.nixosSystem { - lib = final; - system = system; - specialArgs = { - inherit inputs; - nixpkgs-patched = nixpkgs-patched-src; - }; - modules = builtins.attrValues modules ++ [ - ../machines/base.nix - inputs.sops-nix.nixosModules.sops - host-config - home-manager.nixosModules.home-manager - inputs.simple-nixos-mailserver.nixosModule - inputs.hyprland.nixosModules.default - inputs.attic.nixosModules.atticd - inputs.lanzaboote.nixosModules.lanzaboote - inputs.nix-index-database.nixosModules.nix-index - { - home-manager.useGlobalPkgs = true; - nixpkgs.overlays = [ - (overlay-unstable system) - (final: prev: - { - hyprland = inputs.hyprland.packages.${system}.default.override { - enableXWayland = true; - nvidiaPatches = false; - legacyRenderer = true; - }; - waybar = prev.waybar.overrideAttrs (oldAttrs: { - mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; - }); - tinystatus = prev.pkgs.callPackage ../packages/tinystatus { }; - jackett = prev.unstable.jackett; - radarr = prev.unstable.radarr; - htpdate = prev.pkgs.callPackage ../packages/htpdate { }; - authelia = prev.pkgs.callPackage ../packages/authelia { }; - paperless-ng = prev.pkgs.callPackage ../packages/paperless-ng { }; - tailscale = prev.unstable.tailscale; - nodePackages = prev.unstable.nodePackages; - hydrasect = prev.pkgs.callPackage ../packages/hydrasect { }; - linkal = inputs.linkal.defaultPackage."${system}"; - mosh = prev.unstable.mosh; - hyprpaper = inputs.hyprpaper.packages.${system}.default; - attic = inputs.attic.packages.${system}.default; - colmena = inputs.colmena.packages.${system}.colmena; - nixd = inputs.nixd.packages.${system}.default; - keycloak-keywind = prev.pkgs.callPackage ../packages/keycloak-keywind { }; - nix-rfc-92 = inputs.nix-rfc-92.packages.${system}.default; - bcachefs-tools = prev.unstable.bcachefs-tools; - }) - ]; - } - ]; - extraModules = [ inputs.colmena.nixosModules.deploymentOptions ]; - }; - importConfig = path: (mapAttrs (name: value: import (path + "/${name}/default.nix")) (final.filterAttrs (_: v: v == "directory") (readDir path))); mkSubdomain = name: port: { diff --git a/lib/luj.nix b/lib/luj.nix index 79c266f..558644b 100644 --- a/lib/luj.nix +++ b/lib/luj.nix @@ -48,9 +48,9 @@ inputs: lib: with lib; let hm_version = inputs.home-manager; }; telecom = { - arch = "x86_64-linux"; - nixpkgs_version = inputs.nixpkgs; - hm_version = inputs.home-manager; + arch = "x86_64-linux"; + nixpkgs_version = inputs.unstable-plus-patches; + hm_version = inputs.home-manager-unstable; }; enigma = { arch = "aarch64-linux"; diff --git a/lib/mkmachine.nix b/lib/mkmachine.nix new file mode 100644 index 0000000..dc1cdd0 --- /dev/null +++ b/lib/mkmachine.nix @@ -0,0 +1,70 @@ +inputs: lib: + +let + overlay-unstable = arch: final: prev: + let + nixpkgs-patched-src = (import inputs.nixpkgs { system = arch; }).applyPatches { + name = "nixpkgs-patches"; + src = inputs.nixpkgs; + patches = [ ../patches/bcachefs-systemd-stage-1.patch ]; + }; + in + { + unstable = inputs.unstable.legacyPackages."${arch}"; + nixpkgs-patched = import nixpkgs-patched-src { system = arch; }; + stable = inputs.nixpkgs.legacyPackages."${arch}"; + }; +in + +{ host, host-config, modules, nixpkgs ? inputs.nixpkgs, system ? "x86_64-linux", home-manager ? inputs.home-manager }: +nixpkgs.lib.nixosSystem { + inherit system; + lib = (nixpkgs.lib.extend (import ./default.nix inputs)); + specialArgs = + { + inherit inputs; + }; + modules = builtins.attrValues modules ++ [ + ../machines/base.nix + inputs.sops-nix.nixosModules.sops + host-config + home-manager.nixosModules.home-manager + inputs.simple-nixos-mailserver.nixosModule + inputs.hyprland.nixosModules.default + inputs.attic.nixosModules.atticd + inputs.lanzaboote.nixosModules.lanzaboote + inputs.nix-index-database.nixosModules.nix-index + { + home-manager.useGlobalPkgs = true; + nixpkgs.overlays = [ + (overlay-unstable system) + (final: prev: + { + waybar = prev.waybar.overrideAttrs (oldAttrs: { + mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; + }); + tinystatus = prev.pkgs.callPackage ../packages/tinystatus { }; + jackett = prev.unstable.jackett; + radarr = prev.unstable.radarr; + htpdate = prev.pkgs.callPackage ../packages/htpdate { }; + authelia = prev.pkgs.callPackage ../packages/authelia { }; + paperless-ng = prev.pkgs.callPackage ../packages/paperless-ng { }; + tailscale = prev.unstable.tailscale; + nodePackages = prev.unstable.nodePackages; + hydrasect = prev.pkgs.callPackage ../packages/hydrasect { }; + linkal = inputs.linkal.defaultPackage."${system}"; + mosh = prev.unstable.mosh; + hyprpaper = inputs.hyprpaper.packages.${system}.default; + attic = inputs.attic.packages.${system}.default; + colmena = inputs.colmena.packages.${system}.colmena; + nixd = inputs.nixd.packages.${system}.default; + keycloak-keywind = prev.pkgs.callPackage ../packages/keycloak-keywind { }; + nix-rfc-92 = inputs.nix-rfc-92.packages.${system}.default; + bcachefs-tools = prev.unstable.bcachefs-tools; + }) + ]; + } + ]; + extraModules = [ inputs.colmena.nixosModules.deploymentOptions ]; +} +