mirror of
https://github.com/NixOS/nix.git
synced 2025-12-22 17:01:08 +01:00
This matches what we just did for `nix path-info`, and I hope will allow
us to avoiding any more breaking changes to this command for the
foreseeable future.
(cherry picked from commit 0f18076f3a)
31 lines
1.1 KiB
Bash
31 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
source common.sh
|
|
|
|
export NIX_TESTS_CA_BY_DEFAULT=1
|
|
|
|
drvPath=$(nix-instantiate ../simple.nix)
|
|
|
|
nix derivation show "$drvPath" | jq '.derivations[]' > "$TEST_HOME"/simple.json
|
|
|
|
drvPath2=$(nix derivation add < "$TEST_HOME"/simple.json)
|
|
|
|
[[ "$drvPath" = "$drvPath2" ]]
|
|
|
|
# Content-addressing derivations can be renamed.
|
|
jq '.name = "foo"' < "$TEST_HOME"/simple.json > "$TEST_HOME"/foo.json
|
|
drvPath3=$(nix derivation add --dry-run < "$TEST_HOME"/foo.json)
|
|
# With --dry-run nothing is actually written
|
|
[[ ! -e "$drvPath3" ]]
|
|
|
|
# But the JSON is rejected without the experimental feature
|
|
expectStderr 1 nix derivation add < "$TEST_HOME"/foo.json --experimental-features nix-command | grepQuiet "experimental Nix feature 'ca-derivations' is disabled"
|
|
|
|
# Without --dry-run it is actually written
|
|
drvPath4=$(nix derivation add < "$TEST_HOME"/foo.json)
|
|
[[ "$drvPath4" = "$drvPath3" ]]
|
|
[[ -e "$drvPath3" ]]
|
|
|
|
# The modified derivation read back as JSON matches
|
|
nix derivation show "$drvPath3" | jq '.derivations[]' > "$TEST_HOME"/foo-read.json
|
|
diff "$TEST_HOME"/foo.json "$TEST_HOME"/foo-read.json
|