diff options
author | makefu <github@syntax-fehler.de> | 2017-06-01 10:08:56 +0200 |
---|---|---|
committer | makefu <github@syntax-fehler.de> | 2017-06-01 10:08:56 +0200 |
commit | 772f84305d90380e0d221cf49ae3f1597d0d0510 (patch) | |
tree | 8d2241648396dc34fa96c8c68e12f832fbc7c308 /krebs/5pkgs/simple/whatsupnix/whatsupnix.bash | |
parent | 90822f64e0bf247c5cca2f035077553cac5ceb79 (diff) | |
parent | 21d92086fe00c7369fde3951f92e9f73f4c05ee9 (diff) |
Merge remote-tracking branch 'lass/master'
Diffstat (limited to 'krebs/5pkgs/simple/whatsupnix/whatsupnix.bash')
-rw-r--r-- | krebs/5pkgs/simple/whatsupnix/whatsupnix.bash | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/krebs/5pkgs/simple/whatsupnix/whatsupnix.bash b/krebs/5pkgs/simple/whatsupnix/whatsupnix.bash new file mode 100644 index 000000000..a19410055 --- /dev/null +++ b/krebs/5pkgs/simple/whatsupnix/whatsupnix.bash @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +# Prints build logs for failed derivations in quiet build mode (-Q). +# See https://github.com/NixOS/nix/issues/443 +# +# Usage: +# +# set -o pipefail +# nix-build ... -Q ... | whatsupnix +# + + +GAWK=${GAWK:-gawk} +NIX_STORE=${NIX_STORE:-nix-store} + +broken=$(mktemp) +trap 'rm -f -- "$broken"' EXIT + +exec >&2 + +$GAWK -v broken="$broken" -f <(cat - <<- 'AWK' + match($0, /builder for .*(\/nix\/store\/.+\.drv).* failed/, m) { + print m[1] >> broken + } + { print $0 } +AWK +) + +export NIX_PAGER='' # for nix-store +while read -r drv; do + title="** FAILED $drv LOG **" + frame=${title//?/*} + + echo "$frame" + echo "$title" + echo "$frame" + echo + + $NIX_STORE -l "$drv" + + echo +done < "$broken" + +exit 0 |