From 59a52dc0337f557009f5b3f83e71af402130dae3 Mon Sep 17 00:00:00 2001 From: Noah Masur <7386960+nmasur@users.noreply.github.com> Date: Sat, 8 Feb 2025 13:22:33 -0500 Subject: [PATCH] move inherits and add attrset for imports --- hosts/default.nix | 16 ++++++++++++++++ overlays/pkgs.nix | 2 +- platforms/home-manager/default.nix | 5 ++++- platforms/nix-darwin/default.nix | 5 ++++- platforms/nixos/default.nix | 5 ++++- .../nmasur/presets/services/actualbudget.nix | 2 +- .../modules/nmasur/presets/services/arr.nix | 2 +- .../modules/nmasur/presets/services/bind.nix | 2 +- .../nmasur/presets/services/calibre-web.nix | 2 +- .../nmasur/presets/services/filebrowser.nix | 2 +- .../presets/services/gitea-runner-local.nix | 2 +- .../modules/nmasur/presets/services/gitea.nix | 2 +- .../modules/nmasur/presets/services/grafana.nix | 2 +- .../modules/nmasur/presets/services/immich.nix | 2 +- .../nmasur/presets/services/influxdb2.nix | 2 +- .../modules/nmasur/presets/services/jellyfin.nix | 2 +- .../nmasur/presets/services/minecraft-server.nix | 2 +- .../modules/nmasur/presets/services/n8n.nix | 2 +- .../nmasur/presets/services/nextcloud.nix | 2 +- .../modules/nmasur/presets/services/ntfy-sh.nix | 2 +- .../nmasur/presets/services/paperless.nix | 2 +- .../presets/services/prometheus-remote-write.nix | 2 +- .../nmasur/presets/services/thelounge.nix | 2 +- .../nmasur/presets/services/transmission.nix | 2 +- .../nmasur/presets/services/uptime-kuma.nix | 2 +- .../nmasur/presets/services/vaultwarden.nix | 2 +- .../nmasur/presets/services/victoriametrics.nix | 2 +- .../modules/nmasur/presets/services/vm-agent.nix | 2 +- platforms/nixos/modules/services/filebrowser.nix | 2 +- 29 files changed, 53 insertions(+), 28 deletions(-) create mode 100644 hosts/default.nix diff --git a/hosts/default.nix b/hosts/default.nix new file mode 100644 index 0000000..a6d3e4a --- /dev/null +++ b/hosts/default.nix @@ -0,0 +1,16 @@ +# Return a list of all hosts + +{ lib, ... }: + +lib.pipe (lib.filesystem.listFilesRecursive ./.) [ + # Get only files ending in default.nix + (builtins.filter (name: lib.hasSuffix "default.nix" name)) + # Import each host function + map + (file: { + name = builtins.baseNameOf (builtins.dirOf file); + value = import file; + }) + # Convert to an attrset of hostname -> host function + (builtins.listToAttrs) +] diff --git a/overlays/pkgs.nix b/overlays/pkgs.nix index c360d16..ec99abe 100644 --- a/overlays/pkgs.nix +++ b/overlays/pkgs.nix @@ -13,7 +13,7 @@ let packagesDirectory = lib.filesystem.listFilesRecursive ../pkgs; packages = lib.pipe packagesDirectory [ # Get only files called package.nix - (builtins.filter (name: (lib.hasSuffix "package.nix" name))) + (builtins.filter (name: (name == "package.nix"))) # Apply callPackage to create a derivation (builtins.map prev.callPackage) # Convert the list to an attrset diff --git a/platforms/home-manager/default.nix b/platforms/home-manager/default.nix index 2de487f..fc248e2 100644 --- a/platforms/home-manager/default.nix +++ b/platforms/home-manager/default.nix @@ -1,4 +1,7 @@ { lib, ... }: { - imports = lib.filesystem.listFilesRecursive ./.; + imports = lib.pipe (lib.filesystem.listFilesRecursive ./.) [ + # Get only files ending in .nix + (builtins.filter (name: lib.hasSuffix ".nix" name)) + ]; } diff --git a/platforms/nix-darwin/default.nix b/platforms/nix-darwin/default.nix index 2de487f..fc248e2 100644 --- a/platforms/nix-darwin/default.nix +++ b/platforms/nix-darwin/default.nix @@ -1,4 +1,7 @@ { lib, ... }: { - imports = lib.filesystem.listFilesRecursive ./.; + imports = lib.pipe (lib.filesystem.listFilesRecursive ./.) [ + # Get only files ending in .nix + (builtins.filter (name: lib.hasSuffix ".nix" name)) + ]; } diff --git a/platforms/nixos/default.nix b/platforms/nixos/default.nix index 2de487f..fc248e2 100644 --- a/platforms/nixos/default.nix +++ b/platforms/nixos/default.nix @@ -1,4 +1,7 @@ { lib, ... }: { - imports = lib.filesystem.listFilesRecursive ./.; + imports = lib.pipe (lib.filesystem.listFilesRecursive ./.) [ + # Get only files ending in .nix + (builtins.filter (name: lib.hasSuffix ".nix" name)) + ]; } diff --git a/platforms/nixos/modules/nmasur/presets/services/actualbudget.nix b/platforms/nixos/modules/nmasur/presets/services/actualbudget.nix index 1e15e23..d1a6527 100644 --- a/platforms/nixos/modules/nmasur/presets/services/actualbudget.nix +++ b/platforms/nixos/modules/nmasur/presets/services/actualbudget.nix @@ -5,8 +5,8 @@ }: let - cfg = config.nmasur.presets.services.actualbudget; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.actualbudget; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/arr.nix b/platforms/nixos/modules/nmasur/presets/services/arr.nix index 9f2a75a..64f8832 100644 --- a/platforms/nixos/modules/nmasur/presets/services/arr.nix +++ b/platforms/nixos/modules/nmasur/presets/services/arr.nix @@ -7,8 +7,8 @@ let - cfg = config.nmasur.presets.services.actualbudget; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.actualbudget; # This config specifies ports for Prometheus to scrape information arrConfig = { diff --git a/platforms/nixos/modules/nmasur/presets/services/bind.nix b/platforms/nixos/modules/nmasur/presets/services/bind.nix index 865c82d..bb71721 100644 --- a/platforms/nixos/modules/nmasur/presets/services/bind.nix +++ b/platforms/nixos/modules/nmasur/presets/services/bind.nix @@ -13,8 +13,8 @@ }: let - cfg = config.nmasur.presets.services.bind; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.bind; localIp = "192.168.1.218"; localServices = [ diff --git a/platforms/nixos/modules/nmasur/presets/services/calibre-web.nix b/platforms/nixos/modules/nmasur/presets/services/calibre-web.nix index fd7e412..032d846 100644 --- a/platforms/nixos/modules/nmasur/presets/services/calibre-web.nix +++ b/platforms/nixos/modules/nmasur/presets/services/calibre-web.nix @@ -13,8 +13,8 @@ let - cfg = config.nmasur.presets.services.calibre-web; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.calibre-web; libraryPath = "/data/books"; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/filebrowser.nix b/platforms/nixos/modules/nmasur/presets/services/filebrowser.nix index 3aba1c7..f2d1133 100644 --- a/platforms/nixos/modules/nmasur/presets/services/filebrowser.nix +++ b/platforms/nixos/modules/nmasur/presets/services/filebrowser.nix @@ -4,8 +4,8 @@ ... }: let - cfg = config.nmasur.presets.services.filebrowser; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.filebrowser; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/gitea-runner-local.nix b/platforms/nixos/modules/nmasur/presets/services/gitea-runner-local.nix index c5e9404..da92bad 100644 --- a/platforms/nixos/modules/nmasur/presets/services/gitea-runner-local.nix +++ b/platforms/nixos/modules/nmasur/presets/services/gitea-runner-local.nix @@ -12,8 +12,8 @@ }: let - cfg = config.nmasur.presets.services.gitea-runner-local; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.gitea-runner-local; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/gitea.nix b/platforms/nixos/modules/nmasur/presets/services/gitea.nix index 4da3318..0469cb8 100644 --- a/platforms/nixos/modules/nmasur/presets/services/gitea.nix +++ b/platforms/nixos/modules/nmasur/presets/services/gitea.nix @@ -6,8 +6,8 @@ }: let - cfg = config.nmasur.presets.services.gitea; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.gitea; giteaPath = "/var/lib/gitea"; # Default service directory in { diff --git a/platforms/nixos/modules/nmasur/presets/services/grafana.nix b/platforms/nixos/modules/nmasur/presets/services/grafana.nix index 1de653c..a2afc7f 100644 --- a/platforms/nixos/modules/nmasur/presets/services/grafana.nix +++ b/platforms/nixos/modules/nmasur/presets/services/grafana.nix @@ -6,8 +6,8 @@ }: let - cfg = config.nmasur.presets.services.grafana; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.grafana; promUid = "victoriametrics"; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/immich.nix b/platforms/nixos/modules/nmasur/presets/services/immich.nix index 6d7a0b7..c9db780 100644 --- a/platforms/nixos/modules/nmasur/presets/services/immich.nix +++ b/platforms/nixos/modules/nmasur/presets/services/immich.nix @@ -1,8 +1,8 @@ { config, lib, ... }: let - cfg = config.nmasur.presets.services.immich; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.immich; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/influxdb2.nix b/platforms/nixos/modules/nmasur/presets/services/influxdb2.nix index d71e066..7296aad 100644 --- a/platforms/nixos/modules/nmasur/presets/services/influxdb2.nix +++ b/platforms/nixos/modules/nmasur/presets/services/influxdb2.nix @@ -6,8 +6,8 @@ { config, lib, ... }: let - cfg = config.nmasur.presets.services.influxdb2; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.influxdb2; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/jellyfin.nix b/platforms/nixos/modules/nmasur/presets/services/jellyfin.nix index 858678c..9988476 100644 --- a/platforms/nixos/modules/nmasur/presets/services/jellyfin.nix +++ b/platforms/nixos/modules/nmasur/presets/services/jellyfin.nix @@ -9,8 +9,8 @@ }: let - cfg = config.nmasur.presets.services.jellyfin; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.jellyfin; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/minecraft-server.nix b/platforms/nixos/modules/nmasur/presets/services/minecraft-server.nix index 923e205..c7e50e4 100644 --- a/platforms/nixos/modules/nmasur/presets/services/minecraft-server.nix +++ b/platforms/nixos/modules/nmasur/presets/services/minecraft-server.nix @@ -6,8 +6,8 @@ }: let - cfg = config.nmasur.presets.services.minecraft-server; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.minecraft-server; localPort = 25564; publicPort = 49732; rconPort = 25575; diff --git a/platforms/nixos/modules/nmasur/presets/services/n8n.nix b/platforms/nixos/modules/nmasur/presets/services/n8n.nix index 91d362d..705f298 100644 --- a/platforms/nixos/modules/nmasur/presets/services/n8n.nix +++ b/platforms/nixos/modules/nmasur/presets/services/n8n.nix @@ -4,8 +4,8 @@ { config, lib, ... }: let - cfg = config.nmasur.presets.services.n8n; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.n8n; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/nextcloud.nix b/platforms/nixos/modules/nmasur/presets/services/nextcloud.nix index bb0b574..85e4c7f 100644 --- a/platforms/nixos/modules/nmasur/presets/services/nextcloud.nix +++ b/platforms/nixos/modules/nmasur/presets/services/nextcloud.nix @@ -6,8 +6,8 @@ }: let - cfg = config.nmasur.presets.services.nextcloud; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.nextcloud; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/ntfy-sh.nix b/platforms/nixos/modules/nmasur/presets/services/ntfy-sh.nix index d2fd300..078d828 100644 --- a/platforms/nixos/modules/nmasur/presets/services/ntfy-sh.nix +++ b/platforms/nixos/modules/nmasur/presets/services/ntfy-sh.nix @@ -1,8 +1,8 @@ { config, lib, ... }: let - cfg = config.nmasur.presets.services.ntfy-sh; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.ntfy-sh; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/paperless.nix b/platforms/nixos/modules/nmasur/presets/services/paperless.nix index 50e4c08..754df70 100644 --- a/platforms/nixos/modules/nmasur/presets/services/paperless.nix +++ b/platforms/nixos/modules/nmasur/presets/services/paperless.nix @@ -3,8 +3,8 @@ { config, lib, ... }: let - cfg = config.nmasur.presets.services.paperless; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.paperless; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/prometheus-remote-write.nix b/platforms/nixos/modules/nmasur/presets/services/prometheus-remote-write.nix index ab91151..440bea8 100644 --- a/platforms/nixos/modules/nmasur/presets/services/prometheus-remote-write.nix +++ b/platforms/nixos/modules/nmasur/presets/services/prometheus-remote-write.nix @@ -11,8 +11,8 @@ }: let - cfg = config.nmasur.presets.services.prometheus-remote-write; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.prometheus-remote-write; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/thelounge.nix b/platforms/nixos/modules/nmasur/presets/services/thelounge.nix index 18e5873..866641e 100644 --- a/platforms/nixos/modules/nmasur/presets/services/thelounge.nix +++ b/platforms/nixos/modules/nmasur/presets/services/thelounge.nix @@ -1,7 +1,7 @@ { config, lib, ... }: let - cfg = config.nmasur.presets.services.thelounge; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.thelounge; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/transmission.nix b/platforms/nixos/modules/nmasur/presets/services/transmission.nix index adaebf7..e742aed 100644 --- a/platforms/nixos/modules/nmasur/presets/services/transmission.nix +++ b/platforms/nixos/modules/nmasur/presets/services/transmission.nix @@ -9,8 +9,8 @@ }: let - cfg = config.nmasur.presets.services.transmission; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.transmission; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/uptime-kuma.nix b/platforms/nixos/modules/nmasur/presets/services/uptime-kuma.nix index f6ed574..c0e2fe9 100644 --- a/platforms/nixos/modules/nmasur/presets/services/uptime-kuma.nix +++ b/platforms/nixos/modules/nmasur/presets/services/uptime-kuma.nix @@ -1,8 +1,8 @@ { config, lib, ... }: let - cfg = config.nmasur.presets.services.uptime-kuma; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.uptime-kuma; in { diff --git a/platforms/nixos/modules/nmasur/presets/services/vaultwarden.nix b/platforms/nixos/modules/nmasur/presets/services/vaultwarden.nix index d04f3de..b5a8192 100644 --- a/platforms/nixos/modules/nmasur/presets/services/vaultwarden.nix +++ b/platforms/nixos/modules/nmasur/presets/services/vaultwarden.nix @@ -10,8 +10,8 @@ }: let - cfg = config.nmasur.presets.services.vaultwarden; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.vaultwarden; vaultwardenPath = "/var/lib/bitwarden_rs"; # Default service directory in { diff --git a/platforms/nixos/modules/nmasur/presets/services/victoriametrics.nix b/platforms/nixos/modules/nmasur/presets/services/victoriametrics.nix index 0baebc3..5968ad5 100644 --- a/platforms/nixos/modules/nmasur/presets/services/victoriametrics.nix +++ b/platforms/nixos/modules/nmasur/presets/services/victoriametrics.nix @@ -10,8 +10,8 @@ let - cfg = config.nmasur.presets.services.victoriametrics; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.victoriametrics; username = "prometheus"; diff --git a/platforms/nixos/modules/nmasur/presets/services/vm-agent.nix b/platforms/nixos/modules/nmasur/presets/services/vm-agent.nix index 6786909..69dc380 100644 --- a/platforms/nixos/modules/nmasur/presets/services/vm-agent.nix +++ b/platforms/nixos/modules/nmasur/presets/services/vm-agent.nix @@ -10,8 +10,8 @@ let - cfg = config.nmasur.presets.services.vm-agent; inherit (config.nmasur.settings) hostnames; + cfg = config.nmasur.presets.services.vm-agent; username = "prometheus"; diff --git a/platforms/nixos/modules/services/filebrowser.nix b/platforms/nixos/modules/services/filebrowser.nix index d05020b..6a11b29 100644 --- a/platforms/nixos/modules/services/filebrowser.nix +++ b/platforms/nixos/modules/services/filebrowser.nix @@ -5,8 +5,8 @@ ... }: let - cfg = config.services.filebrowser; inherit (config.nmasur.settings) hostnames; + cfg = config.services.filebrowser; dataDir = "/var/lib/filebrowser";