From 0272a8b0dc8f64c0b590f7007291b9010a0eef44 Mon Sep 17 00:00:00 2001 From: technofab Date: Wed, 30 Jul 2025 21:53:31 +0200 Subject: [PATCH] fix: support passing string as dir for autodiscovery --- lib/default.nix | 6 +++++- tests/lib_test.nix | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/default.nix b/lib/default.nix index 2aa3683..ec71f09 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -39,7 +39,11 @@ in rec { }: let files = builtins.readDir dir; matchingFiles = builtins.filter (name: builtins.match pattern name != null) (builtins.attrNames files); - imports = map (file: /${dir}/${file}) matchingFiles; + imports = map (file: + if builtins.isString dir + then (builtins.unsafeDiscardStringContext dir) + "/${file}" + else /${dir}/${file}) + matchingFiles; in { inherit imports; # automatically set the base so test filepaths are easier to read diff --git a/tests/lib_test.nix b/tests/lib_test.nix index 4437cf3..ae5b474 100644 --- a/tests/lib_test.nix +++ b/tests/lib_test.nix @@ -13,6 +13,10 @@ actual = ntlib.helpers.toPrettyFile (ntlib.autodiscover { dir = ./fixtures; }); + # tests if strings with store path context work + actualDirString = ntlib.helpers.toPrettyFile (ntlib.autodiscover { + dir = "${./fixtures}"; + }); in # sh '' @@ -20,6 +24,9 @@ ${ntlib.helpers.scriptHelpers} assert_file_contains ${actual} "sample_test.nix" "should find sample_test.nix" assert_file_contains ${actual} "base = \"/nix/store/.*-source/tests/fixtures/\"" "should set base to fixtures dir" + + assert_file_contains ${actualDirString} "sample_test.nix" "should find sample_test.nix" + assert_file_contains ${actualDirString} "base = \"/nix/store/.*-fixtures/\"" "should set base to fixtures dir" ''; } {