From 7e888c3c7bb36f6ab6e83d4a6f6a755ff4156791 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Fri, 23 Apr 2021 19:05:59 +0200 Subject: feat(nix): add basic netstring nix generation functions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Moving to toplevel so I can use them with `runExecline`. They should be pretty atomic, and are proven to work (tests are still in my user dir, since they test the producers indirectly via the python parser and I don’t want to pull it out right now). Change-Id: Id0baa3adcb2ec646458a104c7868c2889b8c64f5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3054 Reviewed-by: Profpatsch Tested-by: BuildkiteCI --- users/Profpatsch/netstring/default.nix | 11 ----------- users/Profpatsch/netstring/tests/default.nix | 12 +++++------- 2 files changed, 5 insertions(+), 18 deletions(-) (limited to 'users') diff --git a/users/Profpatsch/netstring/default.nix b/users/Profpatsch/netstring/default.nix index a1d6a1e77f03..333244a0f701 100644 --- a/users/Profpatsch/netstring/default.nix +++ b/users/Profpatsch/netstring/default.nix @@ -1,14 +1,5 @@ { lib, pkgs, depot, ... }: let - toNetstring = s: - "${toString (builtins.stringLength s)}:${s},"; - - toNetstringKeyVal = attrs: - lib.concatStrings - (lib.mapAttrsToList - (k: v: toNetstring (toNetstring k + toNetstring v)) - attrs); - python-netstring = depot.users.Profpatsch.writers.python3Lib { name = "netstring"; } '' @@ -54,8 +45,6 @@ let in depot.nix.utils.drvTargets { inherit - toNetstring - toNetstringKeyVal python-netstring rust-netstring ; diff --git a/users/Profpatsch/netstring/tests/default.nix b/users/Profpatsch/netstring/tests/default.nix index a9e6c9c688ec..b9fb5835e55a 100644 --- a/users/Profpatsch/netstring/tests/default.nix +++ b/users/Profpatsch/netstring/tests/default.nix @@ -3,8 +3,6 @@ let inherit (depot.users.Profpatsch.netstring) - toNetstring - toNetstringKeyVal python-netstring rust-netstring ; @@ -21,20 +19,20 @@ let assert left == right, "{} /= {}".format(str(left), str(right)) assEq( - netstring.read_netstring(b"""${toNetstring "hi!"}"""), + netstring.read_netstring(b"""${depot.nix.netstring.fromString "hi!"}"""), (b"hi!", b"") ) assEq( netstring.read_netstring_key_val( - b"""${toNetstringKeyVal { foo = "42"; }}""" + b"""${depot.nix.netstring.attrsToKeyValList { foo = "42"; }}""" ), (b'foo', b'42', b"") ) assEq( netstring.read_netstring_key_val_list( - b"""${toNetstringKeyVal { foo = "42"; bar = "hi"; }}""" + b"""${depot.nix.netstring.attrsToKeyValList { foo = "42"; bar = "hi"; }}""" ), { b'foo': b'42', b'bar': b'hi' } ) @@ -51,11 +49,11 @@ let fn main() { assert_eq!( std::str::from_utf8(&netstring::to_netstring(b"hello")).unwrap(), - r##"${toNetstring "hello"}"## + r##"${depot.nix.netstring.fromString "hello"}"## ); assert_eq!( std::str::from_utf8(&netstring::to_netstring("こんにちは".as_bytes())).unwrap(), - r##"${toNetstring "こんにちは"}"## + r##"${depot.nix.netstring.fromString "こんにちは"}"## ); } ''; -- cgit 1.4.1