about summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorRebecca Turner <rbt@sent.as>2024-01-29 10:03:51 -0800
committerRebecca Turner <rbt@sent.as>2024-02-01 16:02:33 -0800
commit863786b98b36025ddca4c0678b39bbdf383468a0 (patch)
tree63b07391394f75222960af0156a095a514d1114f /pkgs/build-support
parenta64766913f229e5e63e5a0377df9b4837c87d36f (diff)
downloadnixlib-863786b98b36025ddca4c0678b39bbdf383468a0.tar
nixlib-863786b98b36025ddca4c0678b39bbdf383468a0.tar.gz
nixlib-863786b98b36025ddca4c0678b39bbdf383468a0.tar.bz2
nixlib-863786b98b36025ddca4c0678b39bbdf383468a0.tar.lz
nixlib-863786b98b36025ddca4c0678b39bbdf383468a0.tar.xz
nixlib-863786b98b36025ddca4c0678b39bbdf383468a0.tar.zst
nixlib-863786b98b36025ddca4c0678b39bbdf383468a0.zip
writeTextFile,writeShellApplication: Allow setting extra arguments
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/trivial-builders/default.nix13
1 files changed, 8 insertions, 5 deletions
diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix
index 8a5fc288f1ec..3e63e12febd2 100644
--- a/pkgs/build-support/trivial-builders/default.nix
+++ b/pkgs/build-support/trivial-builders/default.nix
@@ -152,19 +152,21 @@ rec {
     , meta ? { }
     , allowSubstitutes ? false
     , preferLocalBuild ? true
+    , derivationArgs ? { } # Extra arguments to pass to `stdenv.mkDerivation`
     }:
     let
       matches = builtins.match "/bin/([^/]+)" destination;
     in
     runCommand name
-      {
+      ({
         inherit text executable checkPhase allowSubstitutes preferLocalBuild;
-        passAsFile = [ "text" ];
+        passAsFile = [ "text" ]
+          ++ derivationArgs.passAsFile or [ ];
         meta = lib.optionalAttrs (executable && matches != null)
           {
             mainProgram = lib.head matches;
-          } // meta;
-      }
+          } // meta // derivationArgs.meta or {};
+      } // removeAttrs derivationArgs [ "passAsFile" "meta" ])
       ''
         target=$out${lib.escapeShellArg destination}
         mkdir -p "$(dirname "$target")"
@@ -274,9 +276,10 @@ rec {
     , checkPhase ? null
     , excludeShellChecks ? [ ]
     , bashOptions ? [ "errexit" "nounset" "pipefail" ]
+    , derivationArgs ? { } # Extra arguments to pass to `stdenv.mkDerivation`
     }:
     writeTextFile {
-      inherit name meta;
+      inherit name meta derivationArgs;
       executable = true;
       destination = "/bin/${name}";
       allowSubstitutes = true;