alois31
a55112898e
The `allow-flake-configuration` option allows the user to control whether to
accept configuration options supplied by flakes. Unfortunately, setting this
to false really meant "ask each time" (with an option to remember the choice
for each specific option encountered). Let no mean no, and introduce (and
default to) a separate value for the "ask each time" behaviour.
Co-Authored-By: Jade Lovelace <lix@jade.fyi>
Change-Id: I7ccd67a95bfc92cffc1ebdc972d243f5191cc1b4
48 lines
1.2 KiB
Bash
48 lines
1.2 KiB
Bash
source common.sh
|
||
|
||
cp ../simple.nix ../simple.builder.sh ../config.nix $TEST_HOME
|
||
|
||
cd $TEST_HOME
|
||
|
||
rm -f post-hook-ran
|
||
cat <<EOF > echoing-post-hook.sh
|
||
#!/bin/sh
|
||
|
||
echo "ThePostHookRan as \$0" > $PWD/post-hook-ran
|
||
EOF
|
||
chmod +x echoing-post-hook.sh
|
||
|
||
cat <<EOF > flake.nix
|
||
{
|
||
nixConfig.post-build-hook = ./echoing-post-hook.sh;
|
||
nixConfig.allow-dirty = false; # See #5621
|
||
|
||
outputs = a: {
|
||
packages.$system.default = import ./simple.nix;
|
||
};
|
||
}
|
||
EOF
|
||
|
||
# Without --accept-flake-config, the post hook should not run.
|
||
nix build < /dev/null
|
||
(! [[ -f post-hook-ran ]])
|
||
clearStore
|
||
|
||
# likewise with no-accept-flake-config
|
||
nix build --no-accept-flake-config
|
||
(! [[ -f post-hook-ran ]])
|
||
clearStore
|
||
|
||
nix build --accept-flake-config
|
||
test -f post-hook-ran || fail "The post hook should have ran"
|
||
|
||
# Make sure that the path to the post hook doesn’t change if we change
|
||
# something in the flake.
|
||
# Otherwise the user would have to re-validate the setting each time.
|
||
mv post-hook-ran previous-post-hook-run
|
||
echo "# Dummy comment" >> flake.nix
|
||
clearStore
|
||
nix build --accept-flake-config
|
||
diff -q post-hook-ran previous-post-hook-run || \
|
||
fail "Both post hook runs should report the same filename"
|