Kris Maglione
18 years ago
1 changed files with 17 additions and 16 deletions
@ -1,25 +1,26 @@ |
|||||||
#!/bin/sh |
#!/bin/sh -f |
||||||
CACHE=$HOME/.dmenu_cache |
CACHE=$HOME/.dmenu_cache |
||||||
IFS=: |
IFS=: |
||||||
|
|
||||||
|
qfind() { |
||||||
|
find "$@" 2>/dev/null |
||||||
|
} |
||||||
|
|
||||||
uptodate() { |
uptodate() { |
||||||
test ! -f $CACHE && return 1 |
test -f $CACHE && |
||||||
for dir in $PATH |
test "$(echo "$PATH")" = "$(sed 1q "$CACHE")" && |
||||||
do |
qfind $PATH -maxdepth 0 -newer $CACHE |
||||||
test $dir -nt $CACHE && return 1 |
|
||||||
done |
|
||||||
return 0 |
|
||||||
} |
} |
||||||
|
|
||||||
if ! uptodate |
if ! uptodate |
||||||
then |
then |
||||||
for dir in $PATH |
{ |
||||||
do |
echo "$PATH" |
||||||
for file in "$dir"/* |
qfind $PATH -type f -maxdepth 1 -perm -u+x -o -perm -g+x -o -perm -o+x | |
||||||
do |
sed 's,.*/,,' | sort | uniq |
||||||
test -x "$file" && echo "${file##*/}" |
} > $CACHE.$pid |
||||||
done |
mv $CACHE.$pid $CACHE |
||||||
done | sort | uniq > $CACHE |
|
||||||
fi |
fi |
||||||
|
|
||||||
cat $CACHE |
tail -n +2 $CACHE |
||||||
|
|
||||||
|
Loading…
Reference in new issue