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