diff options
| author | Sebastiano Tronto <sebastiano.tronto@gmail.com> | 2022-05-15 12:02:59 +0200 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano.tronto@gmail.com> | 2022-05-15 12:02:59 +0200 |
| commit | 115ff9a06870d51702918cd926199e2271bf4f92 (patch) | |
| tree | 4c2abf616b9eec3ba485f49bcefaf0a98882fa33 /dmenu-filepicker | |
| parent | 5ca3ebbf7c3cef6db6b8270af4fcf0be087c29c1 (diff) | |
| download | scripts-115ff9a06870d51702918cd926199e2271bf4f92.tar.gz scripts-115ff9a06870d51702918cd926199e2271bf4f92.zip | |
Added option to specify alternative menu. Some general cleanup.
Diffstat (limited to 'dmenu-filepicker')
| -rwxr-xr-x | dmenu-filepicker | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/dmenu-filepicker b/dmenu-filepicker index 7a3da9f..e2642b2 100755 --- a/dmenu-filepicker +++ b/dmenu-filepicker | |||
| @@ -2,10 +2,18 @@ | |||
| 2 | 2 | ||
| 3 | # A dmenu-based file picker (prints selected file to stdout) | 3 | # A dmenu-based file picker (prints selected file to stdout) |
| 4 | # Requires: dmenu (or similar) | 4 | # Requires: dmenu (or similar) |
| 5 | # Usage: dmenu-filepicker [path] | 5 | # Usage: dmenu-filepicker [-m menu] [path] |
| 6 | 6 | ||
| 7 | menu=dmenu | 7 | menu="dmenu -i -l 15" |
| 8 | menuopts="-i -l 15" | 8 | |
| 9 | while getopts "m:" opt; do | ||
| 10 | case "$opt" in | ||
| 11 | m) | ||
| 12 | menu="$OPTARG" | ||
| 13 | ;; | ||
| 14 | esac | ||
| 15 | done | ||
| 16 | shift `expr $OPTIND - 1` | ||
| 9 | 17 | ||
| 10 | fullpath=$(realpath ${@:-"$(pwd)"}) | 18 | fullpath=$(realpath ${@:-"$(pwd)"}) |
| 11 | 19 | ||
| @@ -15,7 +23,7 @@ while true; do | |||
| 15 | break | 23 | break |
| 16 | elif [ -d "$fullpath" ] || [ -z "$fullpath" ]; then | 24 | elif [ -d "$fullpath" ] || [ -z "$fullpath" ]; then |
| 17 | if [ -z "$fullpath" ]; then fp="/"; else fp="$fullpath"; fi | 25 | if [ -z "$fullpath" ]; then fp="/"; else fp="$fullpath"; fi |
| 18 | sel=$(ls -a "$fp" | sed 's|.*/||' | $menu $menuopts) | 26 | sel=$(ls -a "$fp" | sed 's|.*/||' | $menu) |
| 19 | if [ "$sel" = ".." ]; then | 27 | if [ "$sel" = ".." ]; then |
| 20 | fullpath=$(echo "$fullpath" | sed "s|/[^/]*$||") | 28 | fullpath=$(echo "$fullpath" | sed "s|/[^/]*$||") |
| 21 | else | 29 | else |
