From dcf97b70e1c72e35622548a1200a1fccb978874f Mon Sep 17 00:00:00 2001 From: Colin Date: Wed, 2 Aug 2023 21:11:49 +0000 Subject: [PATCH] programs: use the `declPackageSet` helper --- hosts/common/programs/assorted.nix | 286 +++++++++++------------ modules/programs.nix | 1 + pkgs/additional/sane-scripts/default.nix | 16 +- pkgs/default.nix | 3 +- 4 files changed, 138 insertions(+), 168 deletions(-) diff --git a/hosts/common/programs/assorted.nix b/hosts/common/programs/assorted.nix index d576f1dd..ef2f4790 100644 --- a/hosts/common/programs/assorted.nix +++ b/hosts/common/programs/assorted.nix @@ -54,172 +54,148 @@ in ]; - sysadminUtils = { - package = null; - suggestedPrograms = [ - "btrfs-progs" - "cacert.unbundled" # some services require unbundled /etc/ssl/certs - "cryptsetup" - "dig" - "efibootmgr" - "fatresize" - "fd" - "file" - "gawk" - "git" - "gptfdisk" - "hdparm" - "htop" - "iftop" - "inetutils" # for telnet - "iotop" - "iptables" - "jq" - "killall" - "lsof" - "miniupnpc" - "nano" - # "ncdu" # ncurses disk usage. doesn't cross compile (zig) - "neovim" - "netcat" - "nethogs" - "nmap" - "openssl" - "parted" - "pciutils" - "powertop" - "pstree" - "ripgrep" - "screen" - "smartmontools" - "socat" - "strace" - "subversion" - "tcpdump" - "tree" - "usbutils" - "wget" - "wirelesstools" # iwlist - ]; - }; - sysadminExtraUtils = { - package = null; - suggestedPrograms = [ - "backblaze-b2" - "duplicity" - "sane-scripts.backup" - "sqlite" # to debug sqlite3 databases - ]; - }; + sysadminUtils = declPackageSet [ + "btrfs-progs" + "cacert.unbundled" # some services require unbundled /etc/ssl/certs + "cryptsetup" + "dig" + "efibootmgr" + "fatresize" + "fd" + "file" + "gawk" + "git" + "gptfdisk" + "hdparm" + "htop" + "iftop" + "inetutils" # for telnet + "iotop" + "iptables" + "jq" + "killall" + "lsof" + "miniupnpc" + "nano" + # "ncdu" # ncurses disk usage. doesn't cross compile (zig) + "neovim" + "netcat" + "nethogs" + "nmap" + "openssl" + "parted" + "pciutils" + "powertop" + "pstree" + "ripgrep" + "screen" + "smartmontools" + "socat" + "strace" + "subversion" + "tcpdump" + "tree" + "usbutils" + "wget" + "wirelesstools" # iwlist + ]; + sysadminExtraUtils = declPackageSet [ + "backblaze-b2" + "duplicity" + "sane-scripts.backup" + "sqlite" # to debug sqlite3 databases + ]; # TODO: split these into smaller groups. # - moby doesn't want a lot of these. # - categories like # - dev? # - debugging? - consoleUtils = { - package = null; - suggestedPrograms = [ - "alsaUtils" # for aplay, speaker-test - # "cdrtools" - "clinfo" - "dmidecode" - "dtrx" # `unar` alternative, "Do The Right eXtraction" - "efivar" - # "flashrom" - "fwupd" - "git" # needed as a user package, for config. - # "gnupg" - # "gocryptfs" - # "gopass" - # "gopass-jsonapi" - "helix" # text editor - "kitty" # TODO: move to GUI, but `ssh servo` from kitty sets `TERM=xterm-kitty` in the remove and breaks things - "libsecret" # for managing user keyrings. TODO: what needs this? lift into the consumer - "lm_sensors" # for sensors-detect. TODO: what needs this? lift into the consumer - "lshw" - # "memtester" - "neovim" # needed as a user package, for swap persistence - # "nettools" - # "networkmanager" - # "nixos-generators" - "nmon" - # "node2nix" - # "oathToolkit" # for oathtool - # "ponymix" - "pulsemixer" - "python3" - # "python3Packages.eyeD3" # music tagging - "ripgrep" # needed as a user package so that its user-level config file can be installed - "rsync" - "sane-scripts.bittorrent" - "sane-scripts.cli" - "snapper" - "sops" - "speedtest-cli" - # "ssh-to-age" - "sudo" - # "tageditor" # music tagging - # "unar" - "wireguard-tools" - "xdg-terminal-exec" - "xdg-utils" # for xdg-open - # "yarn" - "zsh" - ]; - }; + consoleUtils = declPackageSet [ + "alsaUtils" # for aplay, speaker-test + # "cdrtools" + "clinfo" + "dmidecode" + "dtrx" # `unar` alternative, "Do The Right eXtraction" + "efivar" + # "flashrom" + "fwupd" + "git" # needed as a user package, for config. + # "gnupg" + # "gocryptfs" + # "gopass" + # "gopass-jsonapi" + "helix" # text editor + "kitty" # TODO: move to GUI, but `ssh servo` from kitty sets `TERM=xterm-kitty` in the remove and breaks things + "libsecret" # for managing user keyrings. TODO: what needs this? lift into the consumer + "lm_sensors" # for sensors-detect. TODO: what needs this? lift into the consumer + "lshw" + # "memtester" + "neovim" # needed as a user package, for swap persistence + # "nettools" + # "networkmanager" + # "nixos-generators" + "nmon" + # "node2nix" + # "oathToolkit" # for oathtool + # "ponymix" + "pulsemixer" + "python3" + # "python3Packages.eyeD3" # music tagging + "ripgrep" # needed as a user package so that its user-level config file can be installed + "rsync" + "sane-scripts.bittorrent" + "sane-scripts.cli" + "snapper" + "sops" + "speedtest-cli" + # "ssh-to-age" + "sudo" + # "tageditor" # music tagging + # "unar" + "wireguard-tools" + "xdg-terminal-exec" + "xdg-utils" # for xdg-open + # "yarn" + "zsh" + ]; - desktopConsoleUtils = { - package = null; - suggestedPrograms = [ - "gh" # MS GitHub cli - "nix-index" - "nixpkgs-review" - "sane-scripts.dev" - "sequoia" - ]; - }; + desktopConsoleUtils = declPackageSet [ + "gh" # MS GitHub cli + "nix-index" + "nixpkgs-review" + "sane-scripts.dev" + "sequoia" + ]; - consoleMediaUtils = { - package = null; - suggestedPrograms = [ - "ffmpeg" - "imagemagick" - "sox" - "yt-dlp" - ]; - }; + consoleMediaUtils = declPackageSet [ + "ffmpeg" + "imagemagick" + "sox" + "yt-dlp" + ]; - tuiApps = { - package = null; - suggestedPrograms = [ - "aerc" # email client - "msmtp" # sendmail - "offlineimap" # email mailbox sync - "sfeed" # RSS fetcher - "visidata" # TUI spreadsheet viewer/editor - "w3m" # web browser - ]; - }; + tuiApps = declPackageSet [ + "aerc" # email client + "msmtp" # sendmail + "offlineimap" # email mailbox sync + "sfeed" # RSS fetcher + "visidata" # TUI spreadsheet viewer/editor + "w3m" # web browser + ]; - iphoneUtils = { - package = null; - suggestedPrograms = [ - "ifuse" - "ipfs" - "libimobiledevice" - "sane-scripts.sync-from-iphone" - ]; - }; + iphoneUtils = declPackageSet [ + "ifuse" + "ipfs" + "libimobiledevice" + "sane-scripts.sync-from-iphone" + ]; - devPkgs = { - package = null; - suggestedPrograms = [ - "clang" - "nodejs" - "tree-sitter" - ]; - }; + devPkgs = declPackageSet [ + "clang" + "nodejs" + "tree-sitter" + ]; # INDIVIDUAL PACKAGE DEFINITIONS diff --git a/modules/programs.nix b/modules/programs.nix index f48b5707..4303b10e 100644 --- a/modules/programs.nix +++ b/modules/programs.nix @@ -233,6 +233,7 @@ in (lib.mapAttrs' (pkgName: _pkg: { name = "libsForQt5.${pkgName}"; value = {}; }) pkgs.libsForQt5) (lib.mapAttrs' (pkgName: _pkg: { name = "plasma5Packages.${pkgName}"; value = {}; }) pkgs.plasma5Packages) (lib.mapAttrs' (pkgName: _pkg: { name = "python3Packages.${pkgName}"; value = {}; }) pkgs.python3Packages) + (lib.mapAttrs' (pkgName: _pkg: { name = "sane-scripts.${pkgName}"; value = {}; }) pkgs.sane-scripts) (lib.mapAttrs' (pkgName: _pkg: { name = "sway-contrib.${pkgName}"; value = {}; }) pkgs.sway-contrib) ]; } diff --git a/pkgs/additional/sane-scripts/default.nix b/pkgs/additional/sane-scripts/default.nix index e34f59be..bddae4f9 100644 --- a/pkgs/additional/sane-scripts/default.nix +++ b/pkgs/additional/sane-scripts/default.nix @@ -211,16 +211,10 @@ let src = ./src; }; }; -in -symlinkJoin { - name = "sane-scripts"; - paths = lib.attrValues sane-bin; - passthru = sane-bin // { - lib = sane-lib; - }; - meta = { - description = "collection of scripts associated with sane systems"; - homepage = "https://git.uninsane.org"; - platforms = lib.platforms.all; +in sane-bin // { + lib = sane-lib; + all = symlinkJoin { + name = "sane-scripts"; + paths = lib.attrValues sane-bin; }; } diff --git a/pkgs/default.nix b/pkgs/default.nix index 609932c0..5e12b882 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -44,8 +44,7 @@ let mpv-uosc-latest = callPackage ./additional/mpv-uosc-latest { }; mx-sanebot = callPackage ./additional/mx-sanebot { }; rtl8723cs-firmware = callPackage ./additional/rtl8723cs-firmware { }; - # TODO: use `recurseIntoAttrs` ? - sane-scripts = callPackage ./additional/sane-scripts { }; + sane-scripts = lib.recurseIntoAttrs (callPackage ./additional/sane-scripts { }); static-nix-shell = callPackage ./additional/static-nix-shell { }; sublime-music-mobile = callPackage ./additional/sublime-music-mobile { }; sxmo-utils = callPackage ./additional/sxmo-utils { };