27 lines
		
	
	
		
			346 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			346 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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
 |