diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix index ca2f33afa7b3..ab98daa585a4 100644 --- a/pkgs/build-support/trivial-builders/default.nix +++ b/pkgs/build-support/trivial-builders/default.nix @@ -671,8 +671,8 @@ rec { throw "linkFarm entries must be either attrs or a list!"; linkCommands = lib.mapAttrsToList (name: path: '' - mkdir -p "$(dirname ${lib.escapeShellArg "${name}"})" - ln -s ${lib.escapeShellArg "${path}"} ${lib.escapeShellArg "${name}"} + mkdir -p -- "$(dirname -- ${lib.escapeShellArg "${name}"})" + ln -s -- ${lib.escapeShellArg "${path}"} ${lib.escapeShellArg "${name}"} '') entries'; in runCommand name diff --git a/pkgs/build-support/trivial-builders/test/link-farm.nix b/pkgs/build-support/trivial-builders/test/link-farm.nix index f74aaa6667fd..b9b669741b9b 100644 --- a/pkgs/build-support/trivial-builders/test/link-farm.nix +++ b/pkgs/build-support/trivial-builders/test/link-farm.nix @@ -39,6 +39,11 @@ let linkFarmFromAttrs = linkFarm "linkFarmFromAttrs" { inherit foo hello; }; + + linkFarmDelimitOptionList = linkFarm "linkFarmDelimitOptionList" { + "-foo" = foo; + "-hello" = hello; + }; in runCommand "test-linkFarm" { } '' function assertPathEquals() { @@ -61,5 +66,9 @@ runCommand "test-linkFarm" { } '' assertPathEquals "${linkFarmFromAttrs}/foo" "${foo}" assertPathEquals "${linkFarmFromAttrs}/hello" "${hello}" + + assertPathEquals "${linkFarmDelimitOptionList}/-foo" "${foo}" + assertPathEquals "${linkFarmDelimitOptionList}/-hello" "${hello}" + touch $out ''