diff options
author | Profpatsch <mail@profpatsch.de> | 2021-04-23T20·04+0200 |
---|---|---|
committer | Profpatsch <mail@profpatsch.de> | 2021-04-24T10·23+0000 |
commit | eb41eef6127216543d8b28c9c423ac1be0a4ee24 (patch) | |
tree | c01e67c4062711b3623841e8e56791ec8a14edc1 /users/Profpatsch | |
parent | 7e888c3c7bb36f6ab6e83d4a6f6a755ff4156791 (diff) |
chore(nix): move rustSimple from users.Profpatsch.writers r/2547
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 <sternenseemann@systemli.org> Reviewed-by: lukegb <lukegb@tvl.fyi>
Diffstat (limited to 'users/Profpatsch')
-rw-r--r-- | users/Profpatsch/arglib/netencode.nix | 2 | ||||
-rw-r--r-- | users/Profpatsch/execline/default.nix | 2 | ||||
-rw-r--r-- | users/Profpatsch/imap-idle.nix | 2 | ||||
-rw-r--r-- | users/Profpatsch/netencode/default.nix | 19 | ||||
-rw-r--r-- | users/Profpatsch/netstring/default.nix | 2 | ||||
-rw-r--r-- | users/Profpatsch/netstring/tests/default.nix | 11 | ||||
-rw-r--r-- | users/Profpatsch/read-http.nix | 2 | ||||
-rw-r--r-- | users/Profpatsch/tree-sitter.nix | 4 | ||||
-rw-r--r-- | users/Profpatsch/writers/default.nix | 80 | ||||
-rw-r--r-- | users/Profpatsch/writers/tests/default.nix | 49 |
10 files changed, 17 insertions, 156 deletions
diff --git a/users/Profpatsch/arglib/netencode.nix b/users/Profpatsch/arglib/netencode.nix index 6b568ab80d6e..7712bbd5bb9e 100644 --- a/users/Profpatsch/arglib/netencode.nix +++ b/users/Profpatsch/arglib/netencode.nix @@ -2,7 +2,7 @@ let netencode = { - rust = depot.users.Profpatsch.writers.rustSimpleLib { + rust = depot.nix.writers.rustSimpleLib { name = "arglib-netencode"; dependencies = [ depot.users.Profpatsch.execline.exec-helpers diff --git a/users/Profpatsch/execline/default.nix b/users/Profpatsch/execline/default.nix index c852b82a86d0..2d1b91137347 100644 --- a/users/Profpatsch/execline/default.nix +++ b/users/Profpatsch/execline/default.nix @@ -1,7 +1,7 @@ { depot, pkgs, lib, ... }: let - exec-helpers = depot.users.Profpatsch.writers.rustSimpleLib { + exec-helpers = depot.nix.writers.rustSimpleLib { name = "exec-helpers"; } (builtins.readFile ./exec_helpers.rs); diff --git a/users/Profpatsch/imap-idle.nix b/users/Profpatsch/imap-idle.nix index afd033533f3c..3ad5375d89af 100644 --- a/users/Profpatsch/imap-idle.nix +++ b/users/Profpatsch/imap-idle.nix @@ -1,7 +1,7 @@ { depot, pkgs, lib, ... }: let - imap-idle = depot.users.Profpatsch.writers.rustSimple { + imap-idle = depot.nix.writers.rustSimple { name = "imap-idle"; dependencies = [ depot.users.Profpatsch.arglib.netencode.rust diff --git a/users/Profpatsch/netencode/default.nix b/users/Profpatsch/netencode/default.nix index 33209276f92f..6662e622e1bf 100644 --- a/users/Profpatsch/netencode/default.nix +++ b/users/Profpatsch/netencode/default.nix @@ -1,12 +1,7 @@ { depot, pkgs, lib, ... }: let - imports = { - inherit (depot.users.Profpatsch) - writers; - }; - - netencode-rs = imports.writers.rustSimpleLib { + netencode-rs = depot.nix.writers.rustSimpleLib { name = "netencode"; dependencies = [ depot.third_party.rust-crates.nom @@ -18,14 +13,14 @@ let gen = import ./gen.nix { inherit lib; }; - pretty-rs = imports.writers.rustSimpleLib { + pretty-rs = depot.nix.writers.rustSimpleLib { name = "netencode-pretty"; dependencies = [ netencode-rs ]; } (builtins.readFile ./pretty.rs); - pretty = depot.users.Profpatsch.writers.rustSimple { + pretty = depot.nix.writers.rustSimple { name = "netencode-pretty"; dependencies = [ netencode-rs @@ -48,7 +43,7 @@ let } ''; - netencode-mustache = imports.writers.rustSimple { + netencode-mustache = depot.nix.writers.rustSimple { name = "netencode_mustache"; dependencies = [ depot.users.Profpatsch.arglib.netencode.rust @@ -58,7 +53,7 @@ let } (builtins.readFile ./netencode-mustache.rs); - record-get = imports.writers.rustSimple { + record-get = depot.nix.writers.rustSimple { name = "record-get"; dependencies = [ netencode-rs @@ -87,7 +82,7 @@ let } ''; - record-splice-env = imports.writers.rustSimple { + record-splice-env = depot.nix.writers.rustSimple { name = "record-splice-env"; dependencies = [ netencode-rs @@ -116,7 +111,7 @@ let } ''; - env-splice-record = imports.writers.rustSimple { + env-splice-record = depot.nix.writers.rustSimple { name = "env-splice-record"; dependencies = [ netencode-rs diff --git a/users/Profpatsch/netstring/default.nix b/users/Profpatsch/netstring/default.nix index 333244a0f701..2b21cde388e5 100644 --- a/users/Profpatsch/netstring/default.nix +++ b/users/Profpatsch/netstring/default.nix @@ -27,7 +27,7 @@ let return res ''; - rust-netstring = depot.users.Profpatsch.writers.rustSimpleLib { + rust-netstring = depot.nix.writers.rustSimpleLib { name = "netstring"; } '' pub fn to_netstring(s: &[u8]) -> Vec<u8> { diff --git a/users/Profpatsch/netstring/tests/default.nix b/users/Profpatsch/netstring/tests/default.nix index b9fb5835e55a..f64beb9e9275 100644 --- a/users/Profpatsch/netstring/tests/default.nix +++ b/users/Profpatsch/netstring/tests/default.nix @@ -2,15 +2,10 @@ let - inherit (depot.users.Profpatsch.netstring) - python-netstring - rust-netstring - ; - python-netstring-test = depot.users.Profpatsch.writers.python3 { name = "python-netstring-test"; libraries = p: [ - python-netstring + depot.users.Profpatsch.netstring.python-netstring ]; } '' import netstring @@ -38,10 +33,10 @@ let ) ''; - rust-netstring-test = depot.users.Profpatsch.writers.rustSimple { + rust-netstring-test = depot.nix.writers.rustSimple { name = "rust-netstring-test"; dependencies = [ - rust-netstring + depot.users.Profpatsch.netstring.rust-netstring ]; } '' extern crate netstring; diff --git a/users/Profpatsch/read-http.nix b/users/Profpatsch/read-http.nix index 2b7465dab88a..854a11b7d099 100644 --- a/users/Profpatsch/read-http.nix +++ b/users/Profpatsch/read-http.nix @@ -2,7 +2,7 @@ let - read-http = depot.users.Profpatsch.writers.rustSimple { + read-http = depot.nix.writers.rustSimple { name = "read-http"; dependencies = [ depot.third_party.rust-crates.ascii diff --git a/users/Profpatsch/tree-sitter.nix b/users/Profpatsch/tree-sitter.nix index 101ee03d4fe1..1e3f37801968 100644 --- a/users/Profpatsch/tree-sitter.nix +++ b/users/Profpatsch/tree-sitter.nix @@ -6,7 +6,7 @@ let // depot.nix.getBins pkgs.bc [ "bc" ] // depot.nix.getBins pkgs.ocamlPackages.sexp [ "sexp" ]; - print-ast = depot.users.Profpatsch.writers.rustSimple { + print-ast = depot.nix.writers.rustSimple { name = "print-ast"; dependencies = with depot.third_party.rust-crates; [ libloading @@ -58,7 +58,7 @@ let }; }; - watch-file-modified = depot.users.Profpatsch.writers.rustSimple { + watch-file-modified = depot.nix.writers.rustSimple { name = "watch-file-modified"; dependencies = [ depot.third_party.rust-crates.inotify diff --git a/users/Profpatsch/writers/default.nix b/users/Profpatsch/writers/default.nix index 3cb105b5ed1f..3151a9d3bd44 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 e61bf482eeaa..c4769a28c655 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 ; } |