aboutsummaryrefslogtreecommitdiff
path: root/tests/experimental-features.sh
blob: a4d55f5f44d73861f5695d458118900038e67600 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
source common.sh

# Without flakes, flake options should not show up
# With flakes, flake options should show up

function both_ways {
    nix --experimental-features 'nix-command' "$@" | grepQuietInverse flake
    nix --experimental-features 'nix-command flakes' "$@" | grepQuiet flake

    # Also, the order should not matter
    nix "$@" --experimental-features 'nix-command' | grepQuietInverse flake
    nix "$@" --experimental-features 'nix-command flakes' | grepQuiet flake
}

# Simple case, the configuration effects the running command
both_ways show-config

# Skipping for now, because we actually *do* want these to show up in
# the manual, just be marked experimental. Will reenable once the manual
# generation takes advantage of the JSON metadata on this.

# both_ways store gc --help

expect 1 nix --experimental-features 'nix-command' show-config --flake-registry 'https://no'
nix --experimental-features 'nix-command flakes' show-config --flake-registry 'https://no'

# Double check these are stable
nix --experimental-features '' --help
nix --experimental-features '' doctor --help
nix --experimental-features '' repl --help
nix --experimental-features '' upgrade-nix --help

# These 3 arguments are currently given to all commands, which is wrong (as not
# all care). To deal with fixing later, we simply make them require the
# nix-command experimental features --- it so happens that the commands we wish
# stabilizing to do not need them anyways.
for arg in '--print-build-logs' '--offline' '--refresh'; do
    nix --experimental-features 'nix-command' "$arg" --help
    ! nix --experimental-features '' "$arg" --help
done