1
0
Fork 0
dmenu/dmenu_path

26 lines
484 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