stockholm/lib/shell.nix

22 lines
358 B
Nix
Raw Normal View History

{ lib, ... }:
with lib;
rec {
escape =
let
2017-06-18 13:36:18 +00:00
isSafeChar = testString "[-+./0-9:=A-Z_a-z]";
in
stringAsChars (c:
if isSafeChar c then c
else if c == "\n" then "'\n'"
else "\\${c}");
2015-08-28 18:11:03 +00:00
#
# shell script generators
#
# example: "${cat (toJSON { foo = "bar"; })} | jq -r .foo"
cat = s: "printf '%s' ${escape s}";
}