#!/bin/sh
							 | 
						|
								CACHE=$HOME/.dmenu_cache
							 | 
						|
								IFS=:
							 | 
						|
								
							 | 
						|
								uptodate() {
							 | 
						|
									test -f "$CACHE" &&
							 | 
						|
									for dir in $PATH
							 | 
						|
									do
							 | 
						|
										test ! $dir -nt "$CACHE" || return 1
							 | 
						|
									done
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								if ! uptodate
							 | 
						|
								then
							 | 
						|
									for dir in $PATH
							 | 
						|
									do
							 | 
						|
										cd "$dir" &&
							 | 
						|
										for file in *
							 | 
						|
										do
							 | 
						|
											test -x "$file" && echo "$file"
							 | 
						|
										done
							 | 
						|
									done | sort -u > "$CACHE".$$ &&
							 | 
						|
									mv "$CACHE".$$ "$CACHE"
							 | 
						|
								fi
							 | 
						|
								
							 | 
						|
								cat "$CACHE"
							 |