Changed dmenu_path (fixed race, improved speed, check that $PATH is the same as the last run).
This commit is contained in:
		
							parent
							
								
									dfe95cb546
								
							
						
					
					
						commit
						c04b688cc0
					
				
							
								
								
									
										31
									
								
								dmenu_path
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								dmenu_path
									
									
									
									
									
								
							| @ -1,25 +1,26 @@ | |||||||
| #!/bin/sh | #!/bin/sh -f | ||||||
| CACHE=$HOME/.dmenu_cache | CACHE=$HOME/.dmenu_cache | ||||||
| IFS=: | IFS=: | ||||||
| 
 | 
 | ||||||
|  | qfind() { | ||||||
|  | 	find "$@" 2>/dev/null | ||||||
|  | } | ||||||
|  | 
 | ||||||
| uptodate() {                                                                        | uptodate() {                                                                        | ||||||
| 	test ! -f $CACHE && return 1                                                    | 	test -f $CACHE && | ||||||
| 	for dir in $PATH                                                                 | 		test "$(echo "$PATH")" = "$(sed 1q "$CACHE")" && | ||||||
| 	do                                                                               | 		qfind $PATH -maxdepth 0 -newer $CACHE | ||||||
| 		test $dir -nt $CACHE && return 1                                            |  | ||||||
| 	done                                                                             |  | ||||||
| 	return 0                                                                        |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| if ! uptodate | if ! uptodate | ||||||
| then | then | ||||||
| 	for dir in $PATH | 	{ | ||||||
| 	do | 		echo "$PATH" | ||||||
| 		for file in "$dir"/* | 		qfind $PATH -type f -maxdepth 1 -perm -u+x -o -perm -g+x -o -perm -o+x | | ||||||
| 		do | 			sed 's,.*/,,' | sort | uniq | ||||||
| 			test -x "$file" && echo "${file##*/}" | 	} > $CACHE.$pid | ||||||
| 		done | 	mv $CACHE.$pid $CACHE | ||||||
| 	done | sort | uniq > $CACHE |  | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| cat $CACHE | tail -n +2 $CACHE | ||||||
|  | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user