about summary refs log tree commit diff
path: root/users/Profpatsch
diff options
context:
space:
mode:
authorProfpatsch <mail@profpatsch.de>2021-04-23T20·04+0200
committerProfpatsch <mail@profpatsch.de>2021-04-24T10·23+0000
commiteb41eef6127216543d8b28c9c423ac1be0a4ee24 (patch)
treec01e67c4062711b3623841e8e56791ec8a14edc1 /users/Profpatsch
parent7e888c3c7bb36f6ab6e83d4a6f6a755ff4156791 (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.nix2
-rw-r--r--users/Profpatsch/execline/default.nix2
-rw-r--r--users/Profpatsch/imap-idle.nix2
-rw-r--r--users/Profpatsch/netencode/default.nix19
-rw-r--r--users/Profpatsch/netstring/default.nix2
-rw-r--r--users/Profpatsch/netstring/tests/default.nix11
-rw-r--r--users/Profpatsch/read-http.nix2
-rw-r--r--users/Profpatsch/tree-sitter.nix4
-rw-r--r--users/Profpatsch/writers/default.nix80
-rw-r--r--users/Profpatsch/writers/tests/default.nix49
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
     ;
 }