diff options
author | lassulus <lass@aidsballs.de> | 2016-06-12 21:37:27 +0200 |
---|---|---|
committer | lassulus <lass@aidsballs.de> | 2016-06-12 21:37:27 +0200 |
commit | 4e001014c925288834a31ecf14345b34c1e7e212 (patch) | |
tree | 876860b97bbbc82108a74897834d67e05a21df49 /krebs/5pkgs/builders.nix | |
parent | 5dfc8d41d91fd6a48fb55e34e2b12d2012d37a38 (diff) | |
parent | ac3b87b9a62929a81d2a275b808681352cc3c10e (diff) |
Merge remote-tracking branch 'cd/master'
Diffstat (limited to 'krebs/5pkgs/builders.nix')
-rw-r--r-- | krebs/5pkgs/builders.nix | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/krebs/5pkgs/builders.nix b/krebs/5pkgs/builders.nix index f60bbc9d0..8ba0ab5a7 100644 --- a/krebs/5pkgs/builders.nix +++ b/krebs/5pkgs/builders.nix @@ -81,6 +81,26 @@ rec { mv "$textPath" $out ''; + writeFiles = name: specs0: + let + specs = mapAttrsToList (path: spec0: { + path = assert types.pathname.check path; path; + var = "file_${hashString "sha1" path}"; + text = spec0.text; + }) specs0; + + filevars = genAttrs' specs (spec: nameValuePair spec.var spec.text); + + env = filevars // { passAsFile = attrNames filevars; }; + in + pkgs.runCommand name env /* sh */ '' + set -efu + PATH=${makeBinPath [pkgs.coreutils]} + ${concatMapStrings (spec: /* sh */ '' + install -D ''$${spec.var}Path $out${spec.path} + '') specs} + ''; + writeHaskell = k: let |