tio-xdg-open - iomenu - interactive terminal-based selection menu
(HTM) git clone git://bitreich.org/iomenu git://hg6vgqziawt5s4dj.onion/iomenu
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
(DIR) README
(DIR) LICENSE
---
tio-xdg-open (710B)
---
1 #!/bin/sh -e
2 # pick a file to open with xdg-open with iomenu with caching
3 #
4 # The cache is updated when a directory is selected.
5
6 LC_COLLATE=C
7
8 touch "$HOME/.cache/find"
9
10 if test -f "$HOME/.cache/find" && test $# = 0
11 then exec "$0" "$HOME"
12 elif test $# = 0
13 then exec xdg-open "$(iomenu <$HOME/.cache/find)"
14 fi
15
16 mkdir -p "$HOME/.cache"
17 {
18 find "$1" '(' -name .git -o -name CVS ')' -prune -o \
19 -type d -exec printf '%s/\n' '{}' + -o \
20 -type f -exec printf '%s\n' '{}' + | tee "$HOME/.cache/$$"
21 grep -vF "$1" $HOME/.cache/find
22 } | sort -o "$HOME/.cache/find"
23
24 s=$(iomenu <$HOME/.cache/$$)
25
26 rm "$HOME/.cache/$$"
27
28 case $s in
29 ('') exit 1 ;;
30 (*/) exec "$0" "$(cd "$s" && pwd)" ;;
31 (*) exec xdg-open "$s" ;;
32 esac