aboutsummaryrefslogtreecommitdiff
path: root/tests/functional/flakes/config.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/flakes/config.sh')
-rw-r--r--tests/functional/flakes/config.sh42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/functional/flakes/config.sh b/tests/functional/flakes/config.sh
new file mode 100644
index 000000000..d1941a6be
--- /dev/null
+++ b/tests/functional/flakes/config.sh
@@ -0,0 +1,42 @@
+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
+
+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"