From 219ba583b269b1adc8f2bf57604f9204acb2cf56 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Mon, 26 Mar 2018 17:26:20 +0200 Subject: [PATCH] lib/generators: improve toPretty * properly escape strings * remove one check for booleans * improve error message --- lib/generators.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/generators.nix b/lib/generators.nix index 73017f2c679..64399ddd50a 100644 --- a/lib/generators.nix +++ b/lib/generators.nix @@ -98,6 +98,7 @@ rec { */ toYAML = {}@args: toJSON args; + /* Pretty print a value, akin to `builtins.trace`. * Should probably be a builtin as well. */ @@ -108,8 +109,9 @@ rec { allowPrettyValues ? false }@args: v: with builtins; if isInt v then toString v - else if isBool v then (if v == true then "true" else "false") - else if isString v then "\"" + v + "\"" + else if isString v then ''"${libStr.escape [''"''] v}"'' + else if true == v then "true" + else if false == v then "false" else if null == v then "null" else if isFunction v then let fna = lib.functionArgs v; @@ -132,6 +134,6 @@ rec { (name: value: "${toPretty args name} = ${toPretty args value};") v) + " }" - else abort "toPretty: should never happen (v = ${v})"; + else abort "generators.toPretty: should never happen (v = ${v})"; }