1
0
mirror of git://git.suckless.org/dmenu synced 2024-12-23 23:32:42 +00:00

I agree with the race fix of JG, but I dislike the SUSV3-breaking find, and I don't care about PATH changes, keep it simple, stupid

This commit is contained in:
Anselm R. Garbe 2007-05-24 10:34:44 +02:00
parent 53e92b5c17
commit 3a9f3a51ce

View File

@ -1,26 +1,26 @@
#!/bin/sh -f
#!/bin/sh
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 >/dev/null
uptodate() {
test ! -f $CACHE && return 1
for dir in $PATH
do
test $dir -nt $CACHE && return 1
done
return 0
}
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
}
mv $CACHE.$pid $CACHE
for dir in $PATH
do
for file in "$dir"/*
do
test -x "$file" && echo "${file##*/}"
done
done | sort | uniq > $CACHE.$$
mv $CACHE.$$ $CACHE
fi
tail -n +2 $CACHE
cat $CACHE