diff options
author | Leah Rowe <leah@libreboot.org> | 2025-05-08 09:14:19 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2025-05-08 09:14:19 +0100 |
commit | d9e8923ff4e58ecd182dbb3b8eb6b6fe657e6eb5 (patch) | |
tree | 18d51b90ebcdaa90f0b9cfcc0137f52f38d24ab1 /include/lib.sh | |
parent | 0a93c8238847fc3f595d7431c8a2e12f0603a6ef (diff) | |
parent | 2cea8517f3b6c7f72cdecbcd3e6745db29284852 (diff) |
Merge branch 'master' into 25.04_branch
Diffstat (limited to 'include/lib.sh')
-rw-r--r-- | include/lib.sh | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/include/lib.sh b/include/lib.sh index 572fcf68..99e59a1a 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -140,34 +140,35 @@ chkvars() # e.g. coreboot is multi-tree, so 1 singletree() { - ( fx_ "exit 1" "config/$1/"*/ -type f -name "target.cfg" ) || return 1 + ( fx_ "exit 1" find "config/$1/"*/ -type f -name "target.cfg" ) || \ + return 1 } -fe_() +findpath() { - find_ex "x_" "$@" + [ $# -gt 0 ] || err "findpath: No arguments provided" + while [ $# -gt 0 ]; do + found="`readlink -f "$1" 2>/dev/null`" || return 1; : + [ -n "$found" ] || found="`realpath "$1" 2>/dev/null`" || \ + return 1; : + printf "%s\n" "$found" + shift 1 + done } fx_() { - find_ex "" "$@" -} - -find_ex() -{ - xmsg="$1" && shift 1 fd="`mktemp`" && x_ rm -f "$fd" && x_ touch "$fd" xx="$1" && shift 1 - $xmsg find "$@" 2>/dev/null | sort 1>"$fd" 2>/dev/null || \ - err "!find $(echo "$@") > \"$fd\"" - dx_ "$xx" "$fd" + "$@" 2>/dev/null | sort 1>"$fd" 2>/dev/null || err "FATAL: !sort fx_" + dx_ "$xx" "$fd" || break x_ rm -f "$fd" } dx_() { [ -f "$2" ] && while read -r fx; do - $1 "$fx" + $1 "$fx" || return 1 done < "$2"; : } @@ -179,7 +180,6 @@ x_() err() { - set -u -e [ $# -lt 1 ] || printf "ERROR %s: %s\n" "$0" "$1" 1>&2 || : exit 1 } |