feat(nix): add basic netstring nix generation functions

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 <mail@profpatsch.de>
Tested-by: BuildkiteCI
This commit is contained in:
Profpatsch 2021-04-23 19:05:59 +02:00
parent c98dd8b352
commit 7e888c3c7b
4 changed files with 48 additions and 18 deletions

View file

@ -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
;