From e4bf5ce70d7290428e2e315a77ac16b4727a8f14 Mon Sep 17 00:00:00 2001 From: "Berk D. Demir" Date: Mon, 12 May 2025 09:22:13 -0700 Subject: [PATCH] nixos/activation: Fix shellcheck test failure lib/test.nix relies on `fileset.toSource` which creates a source dir with the files of interest. `testers.shellcheck` passes all the files in the source dir to shellcheck. The issue is related to relative path sourcing, i.e. `source ./lib.sh` where shellcheck cannot make any assumptions about the working directory. Options were: 1) Disable this warning with a directive Prior disabling in the tree: - pkgs/tools/nix/info/info.sh - nixos/modules/testing/test-instrumentation.nix 2) Set source-path to SCRIPTDIR with a directive https://github.com/koalaman/shellcheck/wiki/Directive#source-path Even though we don't enable external script following for shellcheck with `-x` flag given every file in the source dir is passed, this directive seems to capture the intent to help shellcheck a bit better. Went with option 2. --- nixos/modules/system/activation/lib/test.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nixos/modules/system/activation/lib/test.sh b/nixos/modules/system/activation/lib/test.sh index 9b146383ad4b..1f38eddfc231 100755 --- a/nixos/modules/system/activation/lib/test.sh +++ b/nixos/modules/system/activation/lib/test.sh @@ -26,6 +26,7 @@ onerr() { } trap onerr ERR +# shellcheck source-path=SCRIPTDIR source ./lib.sh (warn hi, this works >/dev/null) 2>&1 | grep -E $'.*warning:.* hi, this works' >/dev/null