writeFiles: init

This commit is contained in:
tv 2016-06-12 13:53:23 +02:00
parent 8353b1293e
commit fb8be5838a

View File

@ -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