diff options
author | Profpatsch <mail@profpatsch.de> | 2020-06-02 21:42:10 +0200 |
---|---|---|
committer | Profpatsch <mail@profpatsch.de> | 2020-06-02 21:42:10 +0200 |
commit | c7aaf0b2c7c49b672e0ed5c52ad9003d41ef4af4 (patch) | |
tree | b9a8e2804f4e8758aa2b2d31e4853156983a4490 /pkgs/profpatsch | |
parent | 58c640dcccdec34c8892c3f70120fe1ed493f87a (diff) |
pkgs/profpatsch: writeRustSimple, wrapper around buildRustCrate
Diffstat (limited to 'pkgs/profpatsch')
-rw-r--r-- | pkgs/profpatsch/default.nix | 5 | ||||
-rw-r--r-- | pkgs/profpatsch/write-rust.nix | 44 |
2 files changed, 49 insertions, 0 deletions
diff --git a/pkgs/profpatsch/default.nix b/pkgs/profpatsch/default.nix index 7acd06a8..d4ce9ad8 100644 --- a/pkgs/profpatsch/default.nix +++ b/pkgs/profpatsch/default.nix @@ -140,6 +140,11 @@ in rec { ]; }); + inherit (import ./write-rust.nix { inherit pkgs runExeclineLocal getBins; }) + writeRustSimple + writeRustSimpleLib + ; + inherit (runExeclineFns) runExecline runExeclineLocal; inherit (writeExeclineFns) 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 + ; +} |