lambda to import recursive files on all modules

This commit is contained in:
2024-10-02 19:22:53 -06:00
parent 933f52d4ee
commit 46f6fc626f
27 changed files with 72 additions and 85 deletions

View File

@@ -6,16 +6,17 @@
... ...
}: }:
{ {
imports = [ imports =
let
moduleFiles = builtins.filter (file: builtins.match ".*\\.nix" file != null) (
builtins.attrNames (builtins.readDir ./modules)
);
in
[
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
./modules/apps.nix
./modules/dev.nix
./modules/shell.nix
./modules/services.nix
./modules/servers.nix
./modules/scripts.nix
./jawz.nix ./jawz.nix
]; ]
++ (map (file: ./modules/${file}) moduleFiles);
system.stateVersion = "24.05"; system.stateVersion = "24.05";
sops = { sops = {
defaultSopsFormat = "yaml"; defaultSopsFormat = "yaml";

View File

@@ -1,15 +1,12 @@
{ lib, ... }: { lib, ... }:
{ {
imports = [ imports =
./apps/art.nix let
./apps/dictionaries.nix appFiles = builtins.filter (file: builtins.match ".*\\.nix" file != null) (
./apps/fonts.nix builtins.attrNames (builtins.readDir ./apps)
./apps/gaming.nix );
./apps/internet.nix in
./apps/multimedia.nix map (file: ./apps/${file}) appFiles;
./apps/office.nix
./apps/misc.nix
];
my = { my = {
dev.gameDev.enable = lib.mkDefault false; dev.gameDev.enable = lib.mkDefault false;
apps = { apps = {

View File

@@ -1,14 +1,12 @@
{ lib, ... }: { lib, ... }:
{ {
imports = [ imports =
./dev/sh.nix let
./dev/nix.nix devFiles = builtins.filter (file: builtins.match ".*\\.nix" file != null) (
./dev/docker.nix builtins.attrNames (builtins.readDir ./dev)
./dev/python.nix );
./dev/haskell.nix in
./dev/javascript.nix map (file: ./dev/${file}) devFiles;
./emacs.nix
];
my.emacs.enable = lib.mkDefault false; my.emacs.enable = lib.mkDefault false;
my.dev = { my.dev = {
sh.enable = lib.mkDefault false; sh.enable = lib.mkDefault false;

View File

@@ -1,18 +1,12 @@
{ lib, ... }: { lib, ... }:
{ {
imports = [ imports =
./scripts/download.nix let
./scripts/ffmpeg4discord.nix scriptFiles = builtins.filter (file: builtins.match ".*\\.nix" file != null && file != "base.nix") (
./scripts/ffmpreg.nix builtins.attrNames (builtins.readDir ./scripts)
./scripts/find-dup-episode.nix );
./scripts/manage-library.nix in
./scripts/pika-list.nix map (file: ./scripts/${file}) scriptFiles;
./scripts/run.nix
./scripts/split-dir.nix
./scripts/tasks.nix
./scripts/update-dns.nix
./scripts/stream-dl.nix
];
my.units.download.enable = lib.mkDefault false; my.units.download.enable = lib.mkDefault false;
my.units.stream-dl.enable = lib.mkDefault false; my.units.stream-dl.enable = lib.mkDefault false;
} }

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
let let
cfg = config.my.servers.audiobookshelf; cfg = config.my.servers.audiobookshelf;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers.audiobookshelf = setup.mkOptions "audiobookshelf" "audiobooks" 5687; options.my.servers.audiobookshelf = setup.mkOptions "audiobookshelf" "audiobooks" 5687;

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
let let
cfg = config.my.servers.bazarr; cfg = config.my.servers.bazarr;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers.bazarr = setup.mkOptions "bazarr" "subs" config.services.bazarr.listenPort; options.my.servers.bazarr = setup.mkOptions "bazarr" "subs" config.services.bazarr.listenPort;

View File

@@ -3,7 +3,7 @@ let
cfg = config.my.servers.flame; cfg = config.my.servers.flame;
cfgS = config.my.servers.flameSecret; cfgS = config.my.servers.flameSecret;
enable = (cfg.enable || cfgS.enable); enable = (cfg.enable || cfgS.enable);
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers = { options.my.servers = {

View File

@@ -2,7 +2,7 @@
let let
services = import ./homepage/services.nix { inherit config lib; }; services = import ./homepage/services.nix { inherit config lib; };
cfg = config.my.servers.homepage; cfg = config.my.servers.homepage;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers.homepage = setup.mkOptions "homepage" "home" 8082; options.my.servers.homepage = setup.mkOptions "homepage" "home" 8082;
@@ -108,18 +108,13 @@ in
]; ];
} }
]; ];
bookmarks = [ bookmarks =
(import ./homepage/bookmarks/servers.nix) let
(import ./homepage/bookmarks/art.nix) bookmarkFiles = builtins.filter (file: builtins.match ".*\\.nix" file != null) (
(import ./homepage/bookmarks/entertainment.nix) builtins.attrNames (builtins.readDir ./homepage/bookmarks)
(import ./homepage/bookmarks/torrents.nix) );
(import ./homepage/bookmarks/shopping.nix) in
(import ./homepage/bookmarks/social.nix) map (file: import ./homepage/bookmarks/${file}) bookmarkFiles;
(import ./homepage/bookmarks/development.nix)
(import ./homepage/bookmarks/secret-art.nix)
(import ./homepage/bookmarks/secret-media.nix)
(import ./homepage/bookmarks/secret-social.nix)
];
}; };
nginx.virtualHosts."${cfg.host}" = lib.mkIf cfg.enableProxy ( nginx.virtualHosts."${cfg.host}" = lib.mkIf cfg.enableProxy (
setup.proxyReverse cfg.hostName cfg.port // { } setup.proxyReverse cfg.hostName cfg.port // { }

View File

@@ -18,7 +18,7 @@ let
pkgs.gum pkgs.gum
sub-sync sub-sync
]; ];
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers.jellyfin = setup.mkOptions "jellyfin" "flix" 8096; options.my.servers.jellyfin = setup.mkOptions "jellyfin" "flix" 8096;

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
let let
cfg = config.my.servers.kavita; cfg = config.my.servers.kavita;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers.kavita = setup.mkOptions "kavita" "library" config.services.kavita.settings.Port; options.my.servers.kavita = setup.mkOptions "kavita" "library" config.services.kavita.settings.Port;

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
let let
cfg = config.my.servers.lidarr; cfg = config.my.servers.lidarr;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers.lidarr = setup.mkOptions "lidarr" "music" 8686; options.my.servers.lidarr = setup.mkOptions "lidarr" "music" 8686;

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
let let
cfg = config.my.servers.maloja; cfg = config.my.servers.maloja;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers.maloja = setup.mkOptions "maloja" "maloja" 42010; options.my.servers.maloja = setup.mkOptions "maloja" "maloja" 42010;

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
let let
cfg = config.my.servers.mealie; cfg = config.my.servers.mealie;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
disabledModules = [ "services/web-apps/mealie.nix" ]; disabledModules = [ "services/web-apps/mealie.nix" ];

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
let let
cfg = config.my.servers.metube; cfg = config.my.servers.metube;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers.metube = setup.mkOptions "metube" "bajameesta" 8881; options.my.servers.metube = setup.mkOptions "metube" "bajameesta" 8881;

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
let let
cfg = config.my.servers.microbin; cfg = config.my.servers.microbin;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers.microbin = setup.mkOptions "microbin" "copy" 8080; options.my.servers.microbin = setup.mkOptions "microbin" "copy" 8080;

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
let let
cfg = config.my.servers.multi-scrobbler; cfg = config.my.servers.multi-scrobbler;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers.multi-scrobbler = setup.mkOptions "multi-scrobbler" "scrobble" 9078; options.my.servers.multi-scrobbler = setup.mkOptions "multi-scrobbler" "scrobble" 9078;

View File

@@ -16,7 +16,7 @@ let
''; '';
cfg = config.my.servers.nextcloud; cfg = config.my.servers.nextcloud;
cfgC = config.my.servers.collabora; cfgC = config.my.servers.collabora;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers = { options.my.servers = {

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
let let
cfg = config.my.servers.prowlarr; cfg = config.my.servers.prowlarr;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers.prowlarr = setup.mkOptions "prowlarr" "indexer" 9696; options.my.servers.prowlarr = setup.mkOptions "prowlarr" "indexer" 9696;

View File

@@ -6,7 +6,7 @@
}: }:
let let
cfg = config.my.servers.radarr; cfg = config.my.servers.radarr;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers.radarr = setup.mkOptions "radarr" "movies" 7878; options.my.servers.radarr = setup.mkOptions "radarr" "movies" 7878;

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
let let
cfg = config.my.servers.ryot; cfg = config.my.servers.ryot;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers.ryot = setup.mkOptions "ryot" "tracker" 8765; options.my.servers.ryot = setup.mkOptions "ryot" "tracker" 8765;

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
let let
cfg = config.my.servers.shiori; cfg = config.my.servers.shiori;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
disabledModules = [ "services/web-apps/shiori.nix" ]; disabledModules = [ "services/web-apps/shiori.nix" ];

View File

@@ -1,7 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
let let
cfg = config.my.servers.sonarr; cfg = config.my.servers.sonarr;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers.sonarr = setup.mkOptions "sonarr" "series" 8989; options.my.servers.sonarr = setup.mkOptions "sonarr" "series" 8989;

View File

@@ -6,7 +6,7 @@
}: }:
let let
cfg = config.my.servers.vaultwarden; cfg = config.my.servers.vaultwarden;
setup = import ../setup.nix { inherit lib config; }; setup = import ./setup.nix { inherit lib config; };
in in
{ {
options.my.servers.vaultwarden = setup.mkOptions "vaultwarden" "vault" 8222; options.my.servers.vaultwarden = setup.mkOptions "vaultwarden" "vault" 8222;

View File

@@ -1,12 +1,12 @@
{ lib, ... }: { lib, ... }:
{ {
imports = [ imports =
./services/network.nix let
./services/nvidia.nix serviceFiles = builtins.filter (file: builtins.match ".*\\.nix" file != null) (
./services/printing.nix builtins.attrNames (builtins.readDir ./services)
./services/sound.nix );
./services/wireguard.nix in
]; map (file: ./services/${file}) serviceFiles;
my.services = { my.services = {
network.enable = lib.mkDefault false; network.enable = lib.mkDefault false;
nvidia.enable = lib.mkDefault false; nvidia.enable = lib.mkDefault false;

View File

@@ -1,10 +1,12 @@
{ lib, ... }: { lib, ... }:
{ {
imports = [ imports =
./shell/exercism.nix let
./shell/multimedia.nix shellFiles = builtins.filter (file: builtins.match ".*\\.nix" file != null) (
./shell/tools.nix builtins.attrNames (builtins.readDir ./shell)
]; );
in
map (file: ./shell/${file}) shellFiles;
my.shell = { my.shell = {
exercism.enable = lib.mkDefault false; exercism.enable = lib.mkDefault false;
multimedia.enable = lib.mkDefault false; multimedia.enable = lib.mkDefault false;