summaryrefslogtreecommitdiff
path: root/ar/.local/bin/dmenusmbadd
diff options
context:
space:
mode:
Diffstat (limited to 'ar/.local/bin/dmenusmbadd')
-rwxr-xr-xar/.local/bin/dmenusmbadd12
1 files changed, 9 insertions, 3 deletions
diff --git a/ar/.local/bin/dmenusmbadd b/ar/.local/bin/dmenusmbadd
index d1b76cd..b4b720b 100755
--- a/ar/.local/bin/dmenusmbadd
+++ b/ar/.local/bin/dmenusmbadd
@@ -32,9 +32,15 @@ else
target_name="$folder_name"
fi
- folder_path=$(for path in $base_path; do
- find "$path" -type d -iname "$target_name" -print 2>/dev/null
- done | sort -r | dmenu -l 10 -p "Select the folder to share:")
+ if command -v fd >/dev/null 2>&1; then
+ # Use fd if available (fastest)
+ folder_path=$(for path in $base_path; do
+ fd -t d -d 3 -i "^$target_name$" "$path" 2>/dev/null
+ done | sed 's:/$::' | sort -r | dmenu -l 10 -p "Select the folder to share:")
+ else
+ # Fallback to parallel find with depth limit
+ folder_path=$(printf "%s\n" $base_path | xargs -P 3 -I {} find {} -maxdepth 3 -type d -iname "$target_name" -print 2>/dev/null | sed 's:/$::' | sort -r | dmenu -l 10 -p "Select the folder to share:")
+ fi
[ -z "$folder_path" ] && notify-send "📁Folder not found." && exit 1
fi