27 lines
		
	
	
		
			503 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			503 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh -f
 | 
						|
CACHE=$HOME/.dmenu_cache
 | 
						|
IFS=:
 | 
						|
 | 
						|
qfind() {
 | 
						|
	find "$@" 2>/dev/null
 | 
						|
}
 | 
						|
 | 
						|
uptodate() {                                                                       
 | 
						|
	test -f $CACHE &&
 | 
						|
		test "$(echo "$PATH")" = "$(sed 1q "$CACHE")" &&
 | 
						|
		qfind $PATH -maxdepth 0 -newer $CACHE >/dev/null
 | 
						|
}
 | 
						|
 | 
						|
if ! uptodate
 | 
						|
then
 | 
						|
	{
 | 
						|
		echo "$PATH"
 | 
						|
		qfind $PATH -type f -maxdepth 1 '(' -perm -u+x -o -perm -g+x -o -perm -o+x ')' |
 | 
						|
			sed 's,.*/,,' | sort | uniq
 | 
						|
	} > $CACHE.$pid
 | 
						|
	mv $CACHE.$pid $CACHE
 | 
						|
fi
 | 
						|
 | 
						|
tail -n +2 $CACHE
 | 
						|
 |