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;
|
inherit name buildCommand;
|
||||||
} // env);
|
} // 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";
|
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/..."; }
|
# entries is a list of attribute sets like { name = "name" ; path = "/nix/store/..."; }
|
||||||
linkFarm = name: entries: runCommand name {} ("mkdir -p $out; cd $out; \n" +
|
linkFarm = name: entries: runCommand name {} ("mkdir -p $out; cd $out; \n" +
|
||||||
(lib.concatMapStrings (x: "ln -s '${x.path}' '${x.name}';\n") entries));
|
(lib.concatMapStrings (x: "ln -s '${x.path}' '${x.name}';\n") entries));
|
||||||
|
Loading…
Reference in New Issue
Block a user