nixcfg/packages/nixos-hosts/default.nix
Harald Hoyer 900f95169f nix fmt
Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
2024-11-19 10:31:29 +01:00

47 lines
957 B
Nix

{
lib,
writeText,
writeShellApplication,
substituteAll,
gum,
inputs,
hosts ? { },
...
}:
let
inherit (lib) mapAttrsToList concatStringsSep;
inherit (lib.metacfg) override-meta;
substitute = args: builtins.readFile (substituteAll args);
formatted-hosts = mapAttrsToList (name: host: "${name},${host.pkgs.system}") hosts;
hosts-csv = writeText "hosts.csv" ''
Name,System
${concatStringsSep "\n" formatted-hosts}
'';
nixos-hosts = writeShellApplication {
name = "nixos-hosts";
text = substitute {
src = ./nixos-hosts.sh;
help = ./help;
hosts = if hosts == { } then "" else hosts-csv;
};
checkPhase = "";
runtimeInputs = [ gum ];
};
new-meta = with lib; {
description = "A helper to list all of the NixOS hosts available from your flake.";
license = licenses.asl20;
maintainers = with maintainers; [ jakehamilton ];
};
in
override-meta new-meta nixos-hosts