whatsupnix: init
Import from https://github.com/NixOS/nix/issues/443#issuecomment-296752535
This commit is contained in:
parent
66f9170f52
commit
015649b9b3
15
krebs/5pkgs/whatsupnix/default.nix
Normal file
15
krebs/5pkgs/whatsupnix/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ bash, coreutils, gawk, nix, makeWrapper, stdenv }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "whatsupnix";
|
||||||
|
phases = [ "installPhase" ];
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cat - ${./whatsupnix.bash} > $out/bin/whatsupnix <<\EOF
|
||||||
|
#! ${bash}/bin/bash
|
||||||
|
export PATH=${stdenv.lib.makeBinPath [ coreutils gawk nix ]}
|
||||||
|
EOF
|
||||||
|
chmod +x $out/bin/whatsupnix
|
||||||
|
'';
|
||||||
|
}
|
44
krebs/5pkgs/whatsupnix/whatsupnix.bash
Normal file
44
krebs/5pkgs/whatsupnix/whatsupnix.bash
Normal file
|
@ -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
|
Loading…
Reference in New Issue
Block a user