diff --git a/nix-system-configs/modules/system/blank_system_USE_THIS_AS_COPY.nix b/nix-system-configs/modules/system/blank_system_USE_THIS_AS_COPY.nix index 41384a0..6a5afa3 100644 --- a/nix-system-configs/modules/system/blank_system_USE_THIS_AS_COPY.nix +++ b/nix-system-configs/modules/system/blank_system_USE_THIS_AS_COPY.nix @@ -3,7 +3,9 @@ pkgs, lib, ... -}: { +}: let + choose = paths: builtins.head (builtins.filter (p: builtins.pathExists p) paths); +in { options.local = { hostname = lib.mkOption { type = lib.types.str; @@ -28,14 +30,11 @@ }; imports = [ - ../desktop-manager/sway_greetd_homemanager.nix - ../local/hostname_username.nix - ../local/networking_local.nix - ../bootloader/seabios-assigned-iso-at-birth.nix - ../lix-default.nix - # Optionally to enable remote building: ./modules/toolsets/remote_building.nix - #./modules/songsheet/wavelog/docker-compose.nix - #./modules/secrets-config/sops-the-blank-system.nix + (choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) + (choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) + (choose [ ./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix ]) + (choose [ ./modules/lix-default.nix ../lix-default.nix ]) + (choose [ ./modules/secrets-config/sops-the-blank-system.nix ../secrets-config/sops-the-blank-system.nix ]) ]; config = { diff --git a/nix-system-configs/modules/system/build_machine.nix b/nix-system-configs/modules/system/build_machine.nix index 2bc2328..b5a2ef0 100644 --- a/nix-system-configs/modules/system/build_machine.nix +++ b/nix-system-configs/modules/system/build_machine.nix @@ -3,7 +3,9 @@ pkgs, lib, ... -}: { +}: let + choose = paths: builtins.head (builtins.filter (p: builtins.pathExists p) paths); +in { options.local = { hostname = lib.mkOption { type = lib.types.str; @@ -28,11 +30,11 @@ }; imports = [ - ../local/hostname_username.nix - ../local/networking_local.nix - ../bootloader/seabios-assigned-iso-at-birth.nix - ../lix-default.nix - ../secrets-config/sops-build-machine.nix + (choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) + (choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) + (choose [ ./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix ]) + (choose [ ./modules/lix-default.nix ../lix-default.nix ]) + (choose [ ./modules/secrets-config/sops-build-machine.nix ../secrets-config/sops-build-machine.nix ]) ]; config = { diff --git a/nix-system-configs/modules/system/compose-songsheet.nix b/nix-system-configs/modules/system/compose-songsheet.nix index 89a2148..95fd8fc 100644 --- a/nix-system-configs/modules/system/compose-songsheet.nix +++ b/nix-system-configs/modules/system/compose-songsheet.nix @@ -3,7 +3,9 @@ pkgs, lib, ... -}: { +}: let + choose = paths: builtins.head (builtins.filter (p: builtins.pathExists p) paths); +in { options.local = { hostname = lib.mkOption { type = lib.types.str; @@ -28,16 +30,16 @@ }; imports = [ - ../desktop-manager/sway_greetd_homemanager.nix - ../local/hostname_username.nix - ../local/networking_local.nix - ../bootloader/seabios-assigned-iso-at-birth.nix - ../lix-default.nix - # Optionally: ../toolsets/remote_building.nix + (choose [ ./modules/desktop-manager/sway_greetd_homemanager.nix ../desktop-manager/sway_greetd_homemanager.nix ]) + (choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) + (choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) + (choose [ ./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix ]) + (choose [ ./modules/lix-default.nix ../lix-default.nix ]) + # Optionally: (choose [ ./modules/toolsets/remote_building.nix ../toolsets/remote_building.nix ]) ## Compose modules for Portainer service - ../songsheet/wavelog/docker-compose.nix - ../secrets-config/sops-composesongsheet.nix + (choose [ ./modules/songsheet/wavelog/docker-compose.nix ../songsheet/wavelog/docker-compose.nix ]) + (choose [ ./modules/secrets-config/sops-composesongsheet.nix ../secrets-config/sops-composesongsheet.nix ]) ]; config = { diff --git a/nix-system-configs/modules/system/database.nix b/nix-system-configs/modules/system/database.nix index 772f117..f22ec06 100644 --- a/nix-system-configs/modules/system/database.nix +++ b/nix-system-configs/modules/system/database.nix @@ -3,7 +3,9 @@ pkgs, lib, ... -}: { +}: let + choose = paths: builtins.head (builtins.filter (p: builtins.pathExists p) paths); +in { options.local = { hostname = lib.mkOption { type = lib.types.str; @@ -28,15 +30,15 @@ }; imports = [ - ../desktop-manager/gnome.nix - ../local/hostname_username.nix - ../local/networking_local.nix - ../bootloader/seabios-assigned-iso-at-birth.nix - ../lix-default.nix - ../secrets-config/sops-database.nix - ../system_scripts/gcloud_backup.nix + (choose [ ./modules/desktop-manager/gnome.nix ../desktop-manager/gnome.nix ]) + (choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) + (choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) + (choose [ ./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix ]) + (choose [ ./modules/lix-default.nix ../lix-default.nix ]) + (choose [ ./modules/secrets-config/sops-database.nix ../secrets-config/sops-database.nix ]) + (choose [ ./modules/system_scripts/gcloud_backup.nix ../system_scripts/gcloud_backup.nix ]) ## TODO: Make this more elegant and less risky for unexpected errors happening. -] ++ lib.optional (builtins.pathExists ./hardware-configuration.nix) ./hardware-configuration.nix; + ] ++ lib.optional (builtins.pathExists ./hardware-configuration.nix) ./hardware-configuration.nix; config = { local.hostname = "nixosdd"; diff --git a/nix-system-configs/modules/system/forgejo.nix b/nix-system-configs/modules/system/forgejo.nix index 583c0f7..5a1a6da 100644 --- a/nix-system-configs/modules/system/forgejo.nix +++ b/nix-system-configs/modules/system/forgejo.nix @@ -7,6 +7,7 @@ home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz"; cfg = config.services.forgejo; srv = cfg.settings.server; + choose = paths: builtins.head (builtins.filter (p: builtins.pathExists p) paths); in { options.local = { hostname = lib.mkOption { @@ -32,12 +33,12 @@ in { }; imports = [ - ../desktop-manager/sway_greetd_homemanager.nix - ../local/hostname_username.nix - ../local/networking_local.nix - ../toolsets/remote_building.nix - ../bootloader/seabios-assigned-proxmox-at-birth.nix - ../lix-default.nix + (choose [ ./modules/desktop-manager/sway_greetd_homemanager.nix ../desktop-manager/sway_greetd_homemanager.nix ]) + (choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) + (choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) + (choose [ ./modules/toolsets/remote_building.nix ../toolsets/remote_building.nix ]) + (choose [ ./modules/bootloader/seabios-assigned-proxmox-at-birth.nix ../bootloader/seabios-assigned-proxmox-at-birth.nix ]) + (choose [ ./modules/lix-default.nix ../lix-default.nix ]) ]; config = { diff --git a/nix-system-configs/modules/system/teamspeak.nix b/nix-system-configs/modules/system/teamspeak.nix index 6f89dbd..fc57454 100644 --- a/nix-system-configs/modules/system/teamspeak.nix +++ b/nix-system-configs/modules/system/teamspeak.nix @@ -3,7 +3,9 @@ pkgs, lib, ... -}: { +}: let + choose = paths: builtins.head (builtins.filter (p: builtins.pathExists p) paths); +in { options.local = { hostname = lib.mkOption { type = lib.types.str; @@ -28,15 +30,15 @@ }; imports = [ - ../desktop-manager/sway_greetd_homemanager.nix - ../local/hostname_username.nix - ../local/networking_local.nix - ../bootloader/seabios-assigned-iso-at-birth.nix - ../lix-default.nix - # Optionally: ./modules/toolsets/remote_building.nix + (choose [ ./modules/desktop-manager/sway_greetd_homemanager.nix ../desktop-manager/sway_greetd_homemanager.nix ]) + (choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) + (choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) + (choose [ ./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix ]) + (choose [ ./modules/lix-default.nix ../lix-default.nix ]) + # Optionally: (choose [ ./modules/toolsets/remote_building.nix ../toolsets/remote_building.nix ]) ## Compose modules for Portainer service - ../songsheet/wavelog/docker-compose.nix - ../secrets-config/sops-composesongsheet.nix + (choose [ ./modules/songsheet/wavelog/docker-compose.nix ../songsheet/wavelog/docker-compose.nix ]) + (choose [ ./modules/secrets-config/sops-composesongsheet.nix ../secrets-config/sops-composesongsheet.nix ]) ]; config = { diff --git a/nix-system-configs/modules/system/traefik.nix b/nix-system-configs/modules/system/traefik.nix index 07d2ac8..28b6d7c 100644 --- a/nix-system-configs/modules/system/traefik.nix +++ b/nix-system-configs/modules/system/traefik.nix @@ -3,7 +3,9 @@ pkgs, lib, ... -}: { +}: let + choose = paths: builtins.head (builtins.filter (p: builtins.pathExists p) paths); +in { options.local = { hostname = lib.mkOption { type = lib.types.str; @@ -28,12 +30,12 @@ }; imports = [ - ../desktop-manager/sway_greetd_homemanager.nix - ../local/hostname_username.nix - ../local/networking_local.nix - ../bootloader/seabios-assigned-iso-at-birth.nix - ../lix-default.nix - # Optionally: ./modules/toolsets/remote_building.nix + (choose [ ./modules/desktop-manager/sway_greetd_homemanager.nix ../desktop-manager/sway_greetd_homemanager.nix ]) + (choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) + (choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) + (choose [ ./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix ]) + (choose [ ./modules/lix-default.nix ../lix-default.nix ]) + # Optionally: (choose [ ./modules/toolsets/remote_building.nix ../toolsets/remote_building.nix ]) ]; config = { diff --git a/nix-system-configs/modules/system/wireguard_server.nix b/nix-system-configs/modules/system/wireguard_server.nix index db47c70..32ee0fb 100644 --- a/nix-system-configs/modules/system/wireguard_server.nix +++ b/nix-system-configs/modules/system/wireguard_server.nix @@ -3,7 +3,9 @@ pkgs, lib, ... -}: { +}: let + choose = paths: builtins.head (builtins.filter (p: builtins.pathExists p) paths); +in { options.local = { hostname = lib.mkOption { type = lib.types.str; @@ -28,12 +30,12 @@ }; imports = [ - ../desktop-manager/sway_greetd_homemanager.nix - ../local/hostname_username.nix - ../local/networking_local.nix - ../bootloader/seabios-assigned-iso-at-birth.nix - ../lix-default.nix - ../secrets-config/sops-wireguard.nix + (choose [ ./modules/desktop-manager/sway_greetd_homemanager.nix ../desktop-manager/sway_greetd_homemanager.nix ]) + (choose [ ./modules/local/hostname_username.nix ../local/hostname_username.nix ]) + (choose [ ./modules/local/networking_local.nix ../local/networking_local.nix ]) + (choose [ ./modules/bootloader/seabios-assigned-iso-at-birth.nix ../bootloader/seabios-assigned-iso-at-birth.nix ]) + (choose [ ./modules/lix-default.nix ../lix-default.nix ]) + (choose [ ./modules/secrets-config/sops-wireguard.nix ../secrets-config/sops-wireguard.nix ]) # Optionally to enable remote building: ./modules/toolsets/remote_building.nix #./modules/songsheet/wavelog/docker-compose.nix #./modules/secrets-config/sops-the-blank-system.nix