lambda to import recursive files on all modules
This commit is contained in:
17
base.nix
17
base.nix
@@ -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";
|
||||||
|
|||||||
@@ -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 = {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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 = {
|
||||||
|
|||||||
@@ -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 // { }
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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" ];
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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 = {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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" ];
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user