From c7aaf0b2c7c49b672e0ed5c52ad9003d41ef4af4 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Tue, 2 Jun 2020 21:42:10 +0200 Subject: pkgs/profpatsch: writeRustSimple, wrapper around buildRustCrate --- pkgs/profpatsch/write-rust.nix | 44 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 pkgs/profpatsch/write-rust.nix (limited to 'pkgs/profpatsch/write-rust.nix') diff --git a/pkgs/profpatsch/write-rust.nix b/pkgs/profpatsch/write-rust.nix new file mode 100644 index 00000000..bf6c1eb2 --- /dev/null +++ b/pkgs/profpatsch/write-rust.nix @@ -0,0 +1,44 @@ +{ pkgs, runExeclineLocal, getBins }: +let + bins = getBins pkgs.coreutils [ "ln" ]; + + writeRustSimple = name: args: srcFile: + linkTo name "${writeRustSimpleBin name args srcFile}/bin/${name}"; + + linkTo = name: path: runExeclineLocal name {} [ + "importas" "out" "out" + bins.ln "-sT" path "$out" + ]; + + writeRustSimpleBin = name: { dependencies ? [], ... }@args: srcFile: pkgs.buildRustCrate ({ + pname = name; + version = "1.0.0"; + crateName = name; + crateBin = [ name ]; + dependencies = dependencies; + src = pkgs.runCommandLocal "write-main.rs" {} '' + mkdir -p $out/src/bin + cp ${srcFile} $out/src/bin/${name}.rs + find $out + ''; + } // args); + + writeRustSimpleLib = name: { dependencies ? [], ... }@args: srcFile: pkgs.buildRustCrate ({ + pname = name; + version = "1.0.0"; + crateName = name; + dependencies = dependencies; + src = pkgs.runCommandLocal "write-lib.rs" {} '' + mkdir -p $out/src + cp ${srcFile} $out/src/lib.rs + find $out + ''; + } // args); + +in { + inherit + writeRustSimple + writeRustSimpleBin + writeRustSimpleLib + ; +} -- cgit 1.4.1