From eb41eef6127216543d8b28c9c423ac1be0a4ee24 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Fri, 23 Apr 2021 22:04:42 +0200 Subject: chore(nix): move rustSimple from users.Profpatsch.writers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I think it’s solid enough to use in a wider context. Change-Id: If53e8bbb6b90fa88d73fb42730db470e822ea182 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3055 Tested-by: BuildkiteCI Reviewed-by: sterni Reviewed-by: lukegb --- users/Profpatsch/writers/default.nix | 80 ------------------------------ users/Profpatsch/writers/tests/default.nix | 49 ------------------ 2 files changed, 129 deletions(-) (limited to 'users/Profpatsch/writers') diff --git a/users/Profpatsch/writers/default.nix b/users/Profpatsch/writers/default.nix index 3cb105b5ed..3151a9d3bd 100644 --- a/users/Profpatsch/writers/default.nix +++ b/users/Profpatsch/writers/default.nix @@ -67,90 +67,10 @@ let doCheck = false; }; - rustSimple = args@{name, ...}: src: - linkTo name "${rustSimpleBin args src}/bin/${name}"; - - linkTo = name: path: depot.nix.runExecline.local name {} [ - "importas" "out" "out" - bins.s6-ln "-s" path "$out" - ]; - - rustSimpleBin = { - name, - dependencies ? [], - doCheck ? true, - ... - }@args: src: - (if doCheck then testRustSimple else pkgs.lib.id) - (pkgs.buildRustCrate ({ - pname = name; - version = "1.0.0"; - crateName = name; - crateBin = [ name ]; - dependencies = dependencies; - src = pkgs.runCommandLocal "write-main.rs" { - src = src; - passAsFile = [ "src" ]; - } '' - mkdir -p $out/src/bin - cp "$srcPath" $out/src/bin/${name}.rs - find $out - ''; - } // args)); - - rustSimpleLib = { - name, - dependencies ? [], - doCheck ? true, - ... - }@args: src: - (if doCheck then testRustSimple else pkgs.lib.id) - (pkgs.buildRustCrate ({ - pname = name; - version = "1.0.0"; - crateName = name; - dependencies = dependencies; - src = pkgs.runCommandLocal "write-lib.rs" { - src = src; - passAsFile = [ "src" ]; - } '' - mkdir -p $out/src - cp "$srcPath" $out/src/lib.rs - find $out - ''; - } // args)); - - /* Takes a `buildRustCrate` derivation as an input, - * builds it with `{ buildTests = true; }` and runs - * all tests found in its `tests` dir. If they are - * all successful, `$out` will point to the crate - * built with `{ buildTests = false; }`, otherwise - * it will fail to build. - * - * See also `nix.drvSeqL` which is used to implement - * this behavior. - */ - testRustSimple = rustDrv: - let - crate = buildTests: rustDrv.override { inherit buildTests; }; - tests = depot.nix.runExecline.local "${rustDrv.name}-tests-run" {} [ - "importas" "out" "out" - "if" [ - "pipeline" [ bins.s6-ls "${crate true}/tests" ] - "forstdin" "-o0" "test" - "importas" "test" "test" - "${crate true}/tests/$test" - ] - bins.s6-touch "$out" - ]; - in drvSeqL [ tests ] (crate false); in { inherit python3 python3Lib - rustSimple - rustSimpleBin - rustSimpleLib ; } diff --git a/users/Profpatsch/writers/tests/default.nix b/users/Profpatsch/writers/tests/default.nix index e61bf482ee..c4769a28c6 100644 --- a/users/Profpatsch/writers/tests/default.nix +++ b/users/Profpatsch/writers/tests/default.nix @@ -4,9 +4,6 @@ let inherit (depot.users.Profpatsch.writers) python3Lib python3 - rustSimple - rustSimpleLib - rustSimpleBin ; inherit (pkgs) @@ -44,54 +41,8 @@ let assert(test_lib.test() == "test 1 2 3") ''); - - rustTransitiveLib = rustSimpleLib { - name = "transitive"; - } '' - pub fn transitive(s: &str) -> String { - let mut new = s.to_string(); - new.push_str(" 1 2 3"); - new - } - - #[cfg(test)] - mod tests { - use super::*; - - #[test] - fn test_transitive() { - assert_eq!(transitive("foo").as_str(), "foo 1 2 3") - } - } - ''; - - rustTestLib = rustSimpleLib { - name = "test_lib"; - dependencies = [ rustTransitiveLib ]; - } '' - extern crate transitive; - use transitive::{transitive}; - pub fn test() -> String { - transitive("test") - } - ''; - - rustWithLib = run (rustSimple { - name = "rust-with-lib"; - dependencies = [ rustTestLib ]; - } '' - extern crate test_lib; - - fn main() { - assert_eq!(test_lib::test(), String::from("test 1 2 3")); - } - ''); - - in depot.nix.utils.drvTargets { inherit pythonWithLib - rustTransitiveLib - rustWithLib ; } -- cgit 1.4.1