26 lines
492 B
Bash
Executable file
26 lines
492 B
Bash
Executable file
#!/bin/sh -f
|
|
CACHE=$HOME/.dmenu_cache
|
|
IFS=:
|
|
|
|
qfind() {
|
|
find "$@" 2>/dev/null
|
|
}
|
|
|
|
uptodate() {
|
|
test -f $CACHE &&
|
|
test "$(echo "$PATH")" = "$(sed 1q "$CACHE")" &&
|
|
qfind $PATH -maxdepth 0 -newer $CACHE
|
|
}
|
|
|
|
if ! uptodate
|
|
then
|
|
{
|
|
echo "$PATH"
|
|
qfind $PATH -type f -maxdepth 1 '(' -perm -u+x -o -perm -g+x -o -perm -o+x ')' |
|
|
sed 's,.*/,,' | sort | uniq
|
|
} > $CACHE.$pid
|
|
mv $CACHE.$pid $CACHE
|
|
fi
|
|
|
|
tail -n +2 $CACHE
|
|
|