blob: 75380089af512446242217672761d8147ce0681a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#!/bin/sh
# A dmenu-based file picker (prints selected file to stdout)
# Requires: dmenu (or similar)
# Usage: dmenu-filepicker [path]
menu=dmenu
menuopts="-i -l 15"
fullpath=$(realpath ${@:-$(pwd)})
while true; do
if [ "$sel" = "." ]; then
echo "$fullpath" | sed 's|/\.||'
break
elif [ -d "$fullpath" ]; then
sel=$(ls -a "$fullpath" | sed 's|.*/||' | $menu $menuopts)
fullpath=$(printf "$fullpath/%s\n" $sel)
else
echo "$fullpath"
break
fi
[ -z "$sel" ] && break
done
|