From 31d279eabb550ce50c40a8e720cba7d70a7e0171 Mon Sep 17 00:00:00 2001 From: Danilo Reyes Date: Thu, 17 Apr 2025 12:25:09 -0600 Subject: [PATCH] made toggles.nix easier to read --- hosts/server/toggles.nix | 108 ++++++++++++++++++---------------- hosts/workstation/toggles.nix | 97 ++++++++++++++++-------------- 2 files changed, 108 insertions(+), 97 deletions(-) diff --git a/hosts/server/toggles.nix b/hosts/server/toggles.nix index 6028a8a..e81f030 100644 --- a/hosts/server/toggles.nix +++ b/hosts/server/toggles.nix @@ -1,4 +1,8 @@ let + mkEnabled = name: { + inherit name; + value.enable = true; + }; mkEnabledProxy = name: { inherit name; value = { @@ -6,8 +10,57 @@ let enableProxy = true; }; }; - withProxy = builtins.listToAttrs ( - map mkEnabledProxy [ + enableList = func: list: list |> map func |> builtins.listToAttrs; +in +{ + mainServer = "server"; + emacs.enable = true; + enableProxy = true; + websites.portfolio.enableProxy = true; + apps.dictionaries.enable = true; + shell = enableList mkEnabled [ + "tools" + "multimedia" + ]; + services = enableList mkEnabled [ + "network" + "nvidia" + "wireguard" + ]; + dev = enableList mkEnabled [ + "nix" + "python" + "sh" + ]; + units = enableList mkEnabled [ + "downloadManga" + "download" + "stream-dl" + ]; + scripts = enableList mkEnabled [ + "run" + "download" + "split-dir" + "ffmpreg" + "ffmpeg4discord" + "manage-library" + "library-report" + "update-dns" + "stream-dl" + "pika-list" + "find-dup-episodes" + "tuh-activity-logger" + ]; + servers = + enableList mkEnabled [ + "qbittorrent" + "sabnzbd" + "unpackerr" + "postgres" + "paperless" + "stash" + ] + // enableList mkEnabledProxy [ "sonarr" "radarr" "lidarr" @@ -26,54 +79,5 @@ let "mealie" "readeck" "synapse" - ] - ); -in -{ - mainServer = "server"; - emacs.enable = true; - apps.dictionaries.enable = true; - websites.portfolio.enableProxy = true; - enableProxy = true; - shell = { - tools.enable = true; - multimedia.enable = true; - }; - services = { - network.enable = true; - nvidia.enable = true; - wireguard.enable = true; - }; - dev = { - nix.enable = true; - python.enable = true; - sh.enable = true; - }; - scripts = { - run.enable = true; - download.enable = true; - split-dir.enable = true; - ffmpreg.enable = true; - ffmpeg4discord.enable = true; - manage-library.enable = true; - library-report.enable = true; - update-dns.enable = true; - stream-dl.enable = true; - pika-list.enable = true; - find-dup-episodes.enable = true; - tuh-activity-logger.enable = true; - }; - units = { - downloadManga.enable = true; - download.enable = true; - stream-dl.enable = true; - }; - servers = withProxy // { - qbittorrent.enable = true; - sabnzbd.enable = true; - unpackerr.enable = true; - postgres.enable = true; - paperless.enable = true; - # stash.enable = true; - }; + ]; } diff --git a/hosts/workstation/toggles.nix b/hosts/workstation/toggles.nix index 2d82202..fb8d02c 100644 --- a/hosts/workstation/toggles.nix +++ b/hosts/workstation/toggles.nix @@ -1,49 +1,56 @@ +let + mkEnabled = name: { + inherit name; + value.enable = true; + }; + enableList = func: list: list |> map func |> builtins.listToAttrs; +in { - enableContainers = true; emacs.enable = true; - apps = { - art.enable = true; - piano.enable = true; - dictionaries.enable = true; - fonts.enable = true; - gaming.enable = true; - switch.enable = true; - internet.enable = true; - multimedia.enable = true; - office.enable = true; - misc.enable = true; - }; - dev = { - cc.enable = true; - docker.enable = true; - julia.enable = true; - rust.enable = true; - haskell.enable = true; - nix.enable = true; - python.enable = true; - gameDev.enable = true; - sh.enable = true; - javascript.enable = true; - }; - shell = { - exercism.enable = true; - multimedia.enable = true; - tools.enable = true; - }; - services = { - network.enable = true; - nvidia.enable = true; - printing.enable = true; - sound.enable = true; - }; - scripts = { - tasks.enable = true; - run.enable = true; - split-dir.enable = true; - download.enable = true; - ffmpreg.enable = true; - ffmpeg4discord.enable = true; - update-org-agenda-cache.enable = true; - }; + enableContainers = true; servers.drpp.enable = true; + apps = enableList mkEnabled [ + "art" + "piano" + "dictionaries" + "fonts" + "gaming" + "switch" + "internet" + "multimedia" + "office" + "misc" + ]; + dev = enableList mkEnabled [ + "cc" + "docker" + "julia" + "rust" + "haskell" + "nix" + "python" + "gameDev" + "sh" + "javascript" + ]; + shell = enableList mkEnabled [ + "exercism" + "multimedia" + "tools" + ]; + services = enableList mkEnabled [ + "network" + "nvidia" + "printing" + "sound" + ]; + scripts = enableList mkEnabled [ + "tasks" + "run" + "split-dir" + "download" + "ffmpreg" + "ffmpeg4discord" + "update-org-agenda-cache" + ]; }