colmena/manual/colorized-help.nix
2022-01-03 10:54:59 -08:00

32 lines
745 B
Nix

{ lib, stdenv, runCommand, colmena, ansi2html }:
with builtins;
let
subcommands = [
null
"apply"
]
++ lib.optional stdenv.isLinux "apply-local"
++ [
"build"
"upload-keys"
"eval"
"exec"
"nix-info"
];
renderHelp = subcommand: let
fullCommand = if subcommand == null then "colmena" else "colmena ${subcommand}";
in ''
(
echo '## `${fullCommand}`'
echo -n '<pre><div class="hljs">'
TERM=xterm-256color CLICOLOR_FORCE=1 ${fullCommand} --help | ansi2html -p
echo '</div></pre>'
)>>$out
'';
in runCommand "colmena-colorized-help" {
nativeBuildInputs = [ colmena ansi2html ];
} (''
ansi2html -H > $out
'' + concatStringsSep "\n" (map renderHelp subcommands))