X-Git-Url: https://iankelling.org/git/?p=distro-setup;a=blobdiff_plain;f=mount-latest-subvol;h=f9bc2def096c8710e53e812fac815216d2592ce5;hp=ea1d1f89195cc26420e68aa462671d1288eef5c4;hb=79b274fcd8bfa556133ab13270e84b40aebe8468;hpb=3c86472e219aaf3c97b1f878b4a818644b282aba diff --git a/mount-latest-subvol b/mount-latest-subvol index ea1d1f8..f9bc2de 100644 --- a/mount-latest-subvol +++ b/mount-latest-subvol @@ -17,6 +17,7 @@ script=$(readlink -f -- "$BASH_SOURCE") cd / [[ $EUID == 0 ]] || exec sudo -E "$script" "$@" +source /usr/local/lib/err usage() { cat <&2 - set +x - echo "${BASH_SOURCE[1]}:${BASH_LINENO[0]}:in \`$BASH_COMMAND' returned $err" - bash-trace 2 - echo "$0: exiting with code $err" - exit $err - } - trap _err-trap ERR - set -o pipefail -} -bash-trace() { - local -i argc_index=0 frame i start=${1:-1} max_indent=8 indent - local source - local extdebug=false - if [[ $(shopt -p extdebug) == *-s* ]]; then - extdebug=true - fi - - for ((frame=0; frame < ${#FUNCNAME[@]}-1; frame++)); do - argc=${BASH_ARGC[frame]} - argc_index+=$argc - ((frame < start)) && continue - if (( ${#BASH_SOURCE[@]} > 1 )); then - source="${BASH_SOURCE[frame+1]}:${BASH_LINENO[frame]}:" - fi - indent=$((frame-start+1)) - indent=$((indent < max_indent ? indent : max_indent)) - printf "%${indent}s↳%sin \`%s" '' "$source" "${FUNCNAME[frame]}" - if $extdebug; then - for ((i=argc_index-1; i >= argc_index-argc; i--)); do - printf " %s" "${BASH_ARGV[i]}" - done - fi - echo \' - done -} -errcatch - tu() { while read -r line; do file="$1"