From 0cfce6d18d93981db251611e276d4734d4ab0cde Mon Sep 17 00:00:00 2001 From: tv Date: Mon, 13 Jun 2016 01:30:06 +0200 Subject: makeScriptWriter: init --- krebs/5pkgs/builders.nix | 43 +++++++++++++++++-------------------------- 1 file changed, 17 insertions(+), 26 deletions(-) (limited to 'krebs/5pkgs/builders.nix') diff --git a/krebs/5pkgs/builders.nix b/krebs/5pkgs/builders.nix index 13f30ac4..4aad51c5 100644 --- a/krebs/5pkgs/builders.nix +++ b/krebs/5pkgs/builders.nix @@ -28,20 +28,20 @@ rec { execveBin = name: cfg: execve name (cfg // { destination = "/bin/${name}"; }); - writeBash = name: text: pkgs.writeScript name '' - #! ${pkgs.bash}/bin/bash - ${text} - ''; + makeScriptWriter = interpreter: name: text: + assert (with types; either absolute-pathname filename).check name; + pkgs.writeOut (baseNameOf name) { + ${optionalString (types.absolute-pathname.check name) name} = { + executable = true; + text = "#! ${interpreter}\n${text}"; + }; + }; - writeBashBin = name: text: pkgs.writeTextFile { - executable = true; - destination = "/bin/${name}"; - name = name; - text = '' - #! ${pkgs.bash}/bin/bash - ${text} - ''; - }; + writeBash = makeScriptWriter "${pkgs.bash}/bin/bash"; + + writeBashBin = name: + assert types.filename.check name; + pkgs.writeBash "/bin/${name}"; writeC = name: { destination ? "" }: src: pkgs.runCommand name {} '' PATH=${makeBinPath (with pkgs; [ @@ -56,20 +56,11 @@ rec { strip --strip-unneeded "$exe" ''; - writeDash = name: text: pkgs.writeScript name '' - #! ${pkgs.dash}/bin/dash - ${text} - ''; + writeDash = makeScriptWriter "${pkgs.dash}/bin/dash"; - writeDashBin = name: text: pkgs.writeTextFile { - executable = true; - destination = "/bin/${name}"; - name = name; - text = '' - #! ${pkgs.dash}/bin/dash - ${text} - ''; - }; + writeDashBin = name: + assert types.filename.check name; + pkgs.writeDash "/bin/${name}"; writeEximConfig = name: text: pkgs.runCommand name { inherit text; -- cgit v1.2.3