summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlocalkannel-dispatch8
1 files changed, 5 insertions, 3 deletions
diff --git a/localkannel-dispatch b/localkannel-dispatch
index 5926b28..41f6e64 100755
--- a/localkannel-dispatch
+++ b/localkannel-dispatch
@@ -119,11 +119,13 @@ findobjects() {
args="$(echo "$limit" | perl -ne 's/.*?([a-z0-9]+).*?/ $1/g and print')"
[ -d "$vardir/$object" ] || return
if [ -z "$*" ]; then
- cd "$vardir/$object" && find * -maxdepth 1 -type d
+ cd "$vardir/$object" && find -mindepth 1 -maxdepth 1 -type d -printf '%f\n'
elif [ -n "$regex" ]; then
- cd "$vardir/$object" && find * -maxdepth 1 -type d -regex "$regex"
+ cd "$vardir/$object" && find -mindepth 1 -maxdepth 1 -type d -regex "$regex"
elif [ -n $args ]; then
- cd "$vardir/$object" && ls -1d $args
+ args_multiline="$(echo "$args" | perl -pe 's/[[:space:]]+/\n/g')"
+ cd "$vardir/$object" && ! find -mindepth 1 -maxdepth 1 -type d -printf '%f\n' \
+ | grep -Fx "$args_multiline" || true
else
return1 "Internal error in routine \"findobjects\" (illegal limit)!"
fi