]> git.armaanb.net Git - dmenu.git/blob - dmenu_path
though sticking to |uniq
[dmenu.git] / dmenu_path
1 #!/bin/sh
2 CACHE=$HOME/.dmenu_cache
3 IFS=:
4
5 uptodate() {
6         test -f "$CACHE" &&
7         for dir in $PATH
8         do
9                 test ! $dir -nt "$CACHE" || return 1
10         done
11 }
12
13 if ! uptodate
14 then
15         for dir in $PATH
16         do
17                 cd "$dir" &&
18                 for file in *
19                 do
20                         test -x "$file" && echo "$file"
21                 done
22         done | sort | uniq > "$CACHE".$$ &&
23         mv "$CACHE".$$ "$CACHE"
24 fi
25
26 cat "$CACHE"