pthbs

Packaging Through Hashed Build Scripts
git clone https://ccx.te2000.cz/git/pthbs
Log | Files | Refs | Submodules | README

commit ba602ab35261343c82e74d654e8624144fb13b56
parent 088782349be71f69fbbb482eb8afc539b4a41c31
Author: Jan Pobrislo <ccx@te2000.cz>
Date:   Tue, 29 Apr 2025 15:55:45 +0000

nicer failure handling for the install process

Diffstat:
Mcommand/pthbs-build | 21+++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/command/pthbs-build b/command/pthbs-build @@ -278,6 +278,7 @@ fi logdir=$pthbs_workdir/logs/$(date '+%Y-%m-%d-%H%M%S')-$pthbs_package ret=0 +fail_reason= if test -n "$pthbs_xtrace"; then pthbs_xtrace=-x; set -x; fi trap 'trap - INT' INT if env -i \ @@ -288,14 +289,22 @@ if env -i \ pthbs_package="$pthbs_package" \ pthbs_xtrace="$pthbs_xtrace" \ sh $pthbs_xtrace -e "$workdir/pthbs-setup" </dev/null; then - trap - INT - printf "BUILD SUCCESFUL :: %s\n" "$pthbs_package" - if ! pthbs-install "$workdir/destdir" "$pthbs_package"; then - ret=1 - echo "INSTALL FAILED" + if test -f "$pthbs_destdir/${pthbs_versions%/}/$pthbs_package/.install-links"; then + trap - INT + printf "BUILD SUCCESFUL :: %s\n" "$pthbs_package" + if ! pthbs-install "$workdir/destdir" "$pthbs_package"; then + ret=1 + echo "INSTALL FAILED" + fi + else + fail_reason="no '.install-links' file'" fi else ret=$? + fail_reason="exitcode $ret" +fi + +if test -n "$fail_reason"; then trap - INT if test -n "$pthbs_fail_log_cmd"; then $pthbs_fail_log_cmd "$workdir/build.log" @@ -303,7 +312,7 @@ else printf "Errors found in log:\n" grep -C 1 -Eie '(error|fatal)[: ]' "$workdir/build.log" fi - printf "BUILD FAILED: exitcode %s :: %s :: %s :: %s\n" "$ret" "$1" "$workdir" "$logdir" + printf "BUILD FAILED: %s :: %s :: %s :: %s\n" "$fail_reason" "$1" "$workdir" "$logdir" mkdir -p "$logdir" rm -v "$(dirname "$logdir")/last_failed_build" ln -v -s -f "$(basename "$logdir")" "$(dirname "$logdir")/last_failed_build"