applied anydot's dmenu_path caching patch, thank you!
4042a11e
1 file(s) · +26 −5
| 1 | 1 | #!/bin/sh |
|
| 2 | + | CACHE=$HOME/.dmenu_cache |
|
| 3 | + | UPTODATE=1 |
|
| 2 | 4 | IFS=: |
|
| 3 | - | for dir in $PATH |
|
| 4 | - | do |
|
| 5 | - | for file in "$dir"/* |
|
| 5 | + | ||
| 6 | + | if test ! -f $CACHE |
|
| 7 | + | then |
|
| 8 | + | unset UPTODATE |
|
| 9 | + | fi |
|
| 10 | + | ||
| 11 | + | if test $UPTODATE |
|
| 12 | + | then |
|
| 13 | + | for dir in $PATH |
|
| 6 | 14 | do |
|
| 7 | - | test -x "$file" && echo "${file##*/}" |
|
| 15 | + | test $dir -nt $CACHE && unset UPTODATE |
|
| 8 | 16 | done |
|
| 9 | - | done | sort | uniq |
|
| 17 | + | fi |
|
| 18 | + | ||
| 19 | + | if test ! $UPTODATE |
|
| 20 | + | then |
|
| 21 | + | for dir in $PATH |
|
| 22 | + | do |
|
| 23 | + | for file in "$dir"/* |
|
| 24 | + | do |
|
| 25 | + | test -x "$file" && echo "${file##*/}" |
|
| 26 | + | done |
|
| 27 | + | done | sort | uniq > $CACHE |
|
| 28 | + | fi |
|
| 29 | + | ||
| 30 | + | cat $CACHE |