move inherits and add attrset for imports

This commit is contained in:
Noah Masur 2025-02-08 13:22:33 -05:00
parent 6217871960
commit 59a52dc033
No known key found for this signature in database
29 changed files with 53 additions and 28 deletions

16
hosts/default.nix Normal file
View File

@ -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)
]

View File

@ -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

View File

@ -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))
];
}

View File

@ -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))
];
}

View File

@ -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))
];
}

View File

@ -5,8 +5,8 @@
}:
let
cfg = config.nmasur.presets.services.actualbudget;
inherit (config.nmasur.settings) hostnames;
cfg = config.nmasur.presets.services.actualbudget;
in
{

View File

@ -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 = {

View File

@ -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 = [

View File

@ -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
{

View File

@ -4,8 +4,8 @@
...
}:
let
cfg = config.nmasur.presets.services.filebrowser;
inherit (config.nmasur.settings) hostnames;
cfg = config.nmasur.presets.services.filebrowser;
in
{

View File

@ -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
{

View File

@ -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
{

View File

@ -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
{

View File

@ -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
{

View File

@ -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
{

View File

@ -9,8 +9,8 @@
}:
let
cfg = config.nmasur.presets.services.jellyfin;
inherit (config.nmasur.settings) hostnames;
cfg = config.nmasur.presets.services.jellyfin;
in
{

View File

@ -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;

View File

@ -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
{

View File

@ -6,8 +6,8 @@
}:
let
cfg = config.nmasur.presets.services.nextcloud;
inherit (config.nmasur.settings) hostnames;
cfg = config.nmasur.presets.services.nextcloud;
in
{

View File

@ -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
{

View File

@ -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
{

View File

@ -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
{

View File

@ -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
{

View File

@ -9,8 +9,8 @@
}:
let
cfg = config.nmasur.presets.services.transmission;
inherit (config.nmasur.settings) hostnames;
cfg = config.nmasur.presets.services.transmission;
in
{

View File

@ -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
{

View File

@ -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
{

View File

@ -10,8 +10,8 @@
let
cfg = config.nmasur.presets.services.victoriametrics;
inherit (config.nmasur.settings) hostnames;
cfg = config.nmasur.presets.services.victoriametrics;
username = "prometheus";

View File

@ -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";

View File

@ -5,8 +5,8 @@
...
}:
let
cfg = config.services.filebrowser;
inherit (config.nmasur.settings) hostnames;
cfg = config.services.filebrowser;
dataDir = "/var/lib/filebrowser";