mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-26 17:03:01 +00:00
added writeTextFile superseding all the other writeText writeScript(Bin) functions
svn path=/nixpkgs/trunk/; revision=13120
This commit is contained in:
parent
a9b19788fb
commit
a08ed61bba
@ -431,17 +431,25 @@ let
|
||||
inherit name buildCommand;
|
||||
} // env);
|
||||
|
||||
# Write a plain text file to the Nix store. (The advantage over
|
||||
# plain sources is that `text' can refer to the output paths of
|
||||
# derivations, e.g., "... ${somePkg}/bin/foo ...".
|
||||
writeText = name: text: runCommand name {inherit text;} "echo -n \"$text\" > $out";
|
||||
|
||||
writeScript = name: text: runCommand name {inherit text;} "echo -n \"$text\" > $out; chmod +x $out";
|
||||
|
||||
writeScriptBin = name: text: runCommand name {inherit text;} "mkdir -p \$out/bin; echo -n \"\$text\" > \$out/bin/\$name ; chmod +x \$out/bin/\$name";
|
||||
|
||||
symlinkJoin = name: paths: runCommand name {inherit paths;} "mkdir -p $out; for i in $paths; do ${xorg.lndir}/bin/lndir $i $out; done";
|
||||
|
||||
# single text file derivation
|
||||
writeTextFile = { name, # the name of the derivation
|
||||
text,
|
||||
executable ? false, # run chmod +x ?
|
||||
destination ? "" # relative path appended to $out eg "/bin/foo"
|
||||
} :
|
||||
runCommand name {inherit text executable; } ''
|
||||
n=$out${destination}
|
||||
mkdir -p "$(dirname "$n")"
|
||||
echo -n "$text" > "$n"
|
||||
[ -n "$executable"] && chmod +x "$n"
|
||||
'';
|
||||
# the following write* functions are depreceated. You should use writeTextFile instead
|
||||
writeText = name: text: runCommand name {inherit text;} "echo -n \"$text\" > $out";
|
||||
writeScript = name: text: runCommand name {inherit text;} "echo -n \"$text\" > $out; chmod +x $out";
|
||||
writeScriptBin = name: text: runCommand name {inherit text;} "mkdir -p \$out/bin; echo -n \"\$text\" > \$out/bin/\$name ; chmod +x \$out/bin/\$name";
|
||||
|
||||
# entries is a list of attribute sets like { name = "name" ; path = "/nix/store/..."; }
|
||||
linkFarm = name: entries: runCommand name {} ("mkdir -p $out; cd $out; \n" +
|
||||
(lib.concatMapStrings (x: "ln -s '${x.path}' '${x.name}';\n") entries));
|
||||
|
Loading…
Reference in New Issue
Block a user