about summary refs log tree commit diff
path: root/nix/netstring/fromString.nix
diff options
context:
space:
mode:
authorProfpatsch <mail@profpatsch.de>2021-04-23T17·05+0200
committerProfpatsch <mail@profpatsch.de>2021-04-24T09·54+0000
commit7e888c3c7bb36f6ab6e83d4a6f6a755ff4156791 (patch)
tree8ba54c21c976545c6d7cb6694aa24a6c425dde56 /nix/netstring/fromString.nix
parentc98dd8b352c4dac33ebb7302eaf527eb4b681502 (diff)
feat(nix): add basic netstring nix generation functions r/2546
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
Diffstat (limited to 'nix/netstring/fromString.nix')
-rw-r--r--nix/netstring/fromString.nix10
1 files changed, 10 insertions, 0 deletions
diff --git a/nix/netstring/fromString.nix b/nix/netstring/fromString.nix
new file mode 100644
index 000000000000..dcd688a8b0b3
--- /dev/null
+++ b/nix/netstring/fromString.nix
@@ -0,0 +1,10 @@
+{ ... }:
+# convert any nix string into a netstring
+# (prefixed by its length) according to https://en.wikipedia.org/wiki/Netstring
+#
+# Examples:
+#   netstring.fromString "foo"
+#   => "3:foo,"
+#   netstring.fromString ""
+#   => "0:,"
+s: "${toString (builtins.stringLength s)}:${s},"