summaryrefslogtreecommitdiff
path: root/include/lib.sh
diff options
context:
space:
mode:
Diffstat (limited to 'include/lib.sh')
-rw-r--r--include/lib.sh23
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 "$@")"; :