diff --git a/package.nix b/package.nix index 20796a386..a90973b4c 100644 --- a/package.nix +++ b/package.nix @@ -24,6 +24,7 @@ , libgit2 , libseccomp , libsodium +, man , lowdown , mdbook , mdbook-linkcheck @@ -213,6 +214,7 @@ in { git mercurial openssh + man # for testing `nix-* --help` ] ++ lib.optionals (doInstallCheck || enableManual) [ jq # Also for custom mdBook preprocessor. ] ++ lib.optional stdenv.hostPlatform.isLinux util-linux diff --git a/tests/functional/help.sh b/tests/functional/help.sh new file mode 100644 index 000000000..74531c5d0 --- /dev/null +++ b/tests/functional/help.sh @@ -0,0 +1,79 @@ +source common.sh + +clearStore + +# test help output + +nix-build --help +nix-shell --help + +nix-env --help +nix-env --install --help +nix-env --upgrade --help +nix-env --uninstall --help +nix-env --set --help +nix-env --set-flag --help +nix-env --query --help +nix-env --switch-profile --help +nix-env --list-generations --help +nix-env --delete-generations --help +nix-env --switch-generation --help +nix-env --rollback --help + +nix-store --help +nix-store --realise --help +nix-store --serve --help +nix-store --gc --help +nix-store --delete --help +nix-store --query --help +nix-store --add --help +nix-store --add-fixed --help +nix-store --verify --help +nix-store --verify-path --help +nix-store --repair-path --help +nix-store --dump --help +nix-store --restore --help +nix-store --export --help +nix-store --import --help +nix-store --optimise --help +nix-store --read-log --help +nix-store --dump-db --help +nix-store --load-db --help +nix-store --print-env --help +nix-store --generate-binary-cache-key --help + +nix-channel --help +nix-collect-garbage --help +nix-copy-closure --help +nix-daemon --help +nix-hash --help +nix-instantiate --help +nix-prefetch-url --help + +function subcommands() { + jq -r ' +def recurse($prefix): + if .commands then + .commands | to_entries[] | .key as $k | + ($prefix + " " + $k) as $newPrefix | + if .value | has("commands") then + (.value | recurse($newPrefix)) + else + $newPrefix + end + else + $prefix + end; + +.args.commands | to_entries[] | .key as $cmd | + if .value | has("commands") then + (.value | recurse($cmd)) + else + $cmd + end +' +} + +nix __dump-cli | subcommands | while IFS= read -r cmd; do + nix $cmd --help +done diff --git a/tests/functional/local.mk b/tests/functional/local.mk index 18eb887cd..e36323a45 100644 --- a/tests/functional/local.mk +++ b/tests/functional/local.mk @@ -129,7 +129,8 @@ nix_tests = \ read-only-store.sh \ nested-sandboxing.sh \ impure-env.sh \ - debugger.sh + debugger.sh \ + help.sh ifeq ($(HAVE_LIBCPUID), 1) nix_tests += compute-levels.sh