diff options
author | Nikolay Amiantov <ab@fmap.me> | 2014-10-06 18:28:32 +0400 |
---|---|---|
committer | Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk> | 2014-10-16 15:27:25 +0100 |
commit | 09f33a43896fd4baaf3eaa299e6e1e1d5944d3a2 (patch) | |
tree | d244072c39c9eb53a0101301ed9aaf10d35f06a2 /pkgs/build-support/substitute-files/substitute-all-files.nix | |
parent | 9e74259bbe7c4d097fe8070e6ef899ade1450a99 (diff) | |
download | nixpkgs-09f33a43896fd4baaf3eaa299e6e1e1d5944d3a2.tar nixpkgs-09f33a43896fd4baaf3eaa299e6e1e1d5944d3a2.tar.gz nixpkgs-09f33a43896fd4baaf3eaa299e6e1e1d5944d3a2.tar.bz2 nixpkgs-09f33a43896fd4baaf3eaa299e6e1e1d5944d3a2.tar.lz nixpkgs-09f33a43896fd4baaf3eaa299e6e1e1d5944d3a2.tar.xz nixpkgs-09f33a43896fd4baaf3eaa299e6e1e1d5944d3a2.tar.zst nixpkgs-09f33a43896fd4baaf3eaa299e6e1e1d5944d3a2.zip |
substituteAllFiles: add derivation
Closes #4145
Diffstat (limited to 'pkgs/build-support/substitute-files/substitute-all-files.nix')
-rw-r--r-- | pkgs/build-support/substitute-files/substitute-all-files.nix | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/pkgs/build-support/substitute-files/substitute-all-files.nix b/pkgs/build-support/substitute-files/substitute-all-files.nix new file mode 100644 index 00000000000..64291901603 --- /dev/null +++ b/pkgs/build-support/substitute-files/substitute-all-files.nix @@ -0,0 +1,22 @@ +{ stdenv }: + +args: + +stdenv.mkDerivation ({ + name = if args ? name then args.name else baseNameOf (toString args.src); + builder = with stdenv.lib; builtins.toFile "builder.sh" '' + source $stdenv/setup + set -o pipefail + + eval "$preInstall" + + args= + + cd "$src" + echo -ne "${concatStringsSep "\\0" args.files}" | xargs -0 -n1 -I {} -- find {} -type f -print0 | while read -d "" line; do + mkdir -p "$out/$(dirname "$line")" + substituteAll "$line" "$out/$line" + done + ''; + preferLocalBuild = true; +} // args) |