diff options
Diffstat (limited to 'include/lib.sh')
-rw-r--r-- | include/lib.sh | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/include/lib.sh b/include/lib.sh index bef2a16f..50813352 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -128,6 +128,29 @@ setvars() printf "%s\n" "${_setvars% }" } +fe_() +{ + find_ex "x_" "$@" +} + +fx_() +{ + find_ex "" "$@" +} + +find_ex() +{ + errx="$1" && shift 1 + fd="`mktemp`" && x_ rm -f "$fd" && x_ touch "$fd" + xx="$1" && shift 1 + $errx find "$@" 2>/dev/null | sort > "$fd" || \ + $err "!find $(echo "$@") > \"$fd\"" + while read -r fx; do + $xx "$fx" || break; : + done < "$fd" + x_ rm -f "$fd" +} + x_() { [ $# -lt 1 ] || "$@" || $err "Unhandled error for: $(echo "$@")"; : |