diff options
-rwxr-xr-x | get | 22 |
1 files changed, 16 insertions, 6 deletions
@@ -4,7 +4,7 @@ # get - evaluate ./default.nix # # SYNOPSIS -# get [-jlprs] [attrPath] +# get [-jlprs] [--show-trace] [attrPath] # # DESCRIPTION # The command nix evaluates the Nix expression in ./default.nix. @@ -24,6 +24,9 @@ # -s Recursively evaluate list elements and attributes. # Refs nix-instantiate(1)'s --strict. # +# --show-trace +# Refs nix-instantiate(1)'s --show-trace. +# set -efu args=$* @@ -61,6 +64,10 @@ if has_sopt s; then strict=1 fi +if has_lopt show-trace; then + show_trace=1 +fi + if x=$(nix-instantiate --json --eval -A NIX_PATH 2>/dev/null); then NIX_PATH=$(echo "$x" | jq -r .) @@ -69,19 +76,22 @@ if x=$(nix-instantiate --json --eval -A NIX_PATH 2>/dev/null); then fi result=$(nix-instantiate \ - --eval \ - --argstr user-name "$LOGNAME" \ - --argstr host-name "$HOSTNAME" \ ${json+--json} \ + ${show_trace+--show-trace} \ ${strict+--strict} \ + --eval \ $( for i; do echo "$i" done | sed -n ' s/^[A-Za-z_][0-9A-Za-z_./-]*$/--attr &/p - s/^\([0-9A-Za-z-]\+\)=\([0-9A-Za-z-]*\)$/--argstr \1-name \2/p + s/^\([0-9A-Za-z-]\+\)=\([.0-9A-Za-z-]*\)$/--argstr \1 \2/p ' - )) + ) \ + --argstr current-date "$(date -Is)" \ + --argstr current-host-name "$HOSTNAME" \ + --argstr current-user-name "$LOGNAME" \ +) case ${raw_output-0} in 1) case ${result:0:1} in \") |