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