From 642c761bd015f5766a75cf5688b50d42efdb96c3 Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 28 Aug 2015 22:13:17 +0200 Subject: krebs pkgs += execveBin --- krebs/5pkgs/default.nix | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'krebs/5pkgs/default.nix') diff --git a/krebs/5pkgs/default.nix b/krebs/5pkgs/default.nix index 3658c43e..54604382 100644 --- a/krebs/5pkgs/default.nix +++ b/krebs/5pkgs/default.nix @@ -18,8 +18,8 @@ rec { posix-array = callPackage ./posix-array.nix {}; youtube-tools = callPackage ./youtube-tools.nix {}; - execve = name: { filename, argv, envp }: - writeC name {} '' + execve = name: { filename, argv, envp ? {}, destination ? "" }: + writeC name { inherit destination; } '' #include int main () { const char *filename = ${toC filename}; @@ -32,14 +32,18 @@ rec { } ''; - writeC = name: {}: src: pkgs.runCommand name {} '' + execveBin = name: cfg: execve name (cfg // { destination = "/bin/${name}"; }); + + writeC = name: { destination ? "" }: src: pkgs.runCommand name {} '' PATH=${lib.makeSearchPath "bin" (with pkgs; [ binutils coreutils gcc ])} - in=${pkgs.writeText "${name}.c" src} - gcc -O -Wall -o $out $in - strip --strip-unneeded $out + src=${pkgs.writeText "${name}.c" src} + exe=$out${destination} + mkdir -p "$(dirname "$exe")" + gcc -O -Wall -o "$exe" $src + strip --strip-unneeded "$exe" ''; } -- cgit v1.2.3