dmenu_run: Split cache logic to dmenu_path again
This allows to run dmenu_path to update the cache using a packager manager hook system
This commit is contained in:
		
							
								
								
									
										6
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								Makefile
									
									
									
									
									
								
							| @ -35,7 +35,7 @@ clean: | |||||||
| dist: clean | dist: clean | ||||||
| 	@echo creating dist tarball | 	@echo creating dist tarball | ||||||
| 	@mkdir -p dmenu-${VERSION} | 	@mkdir -p dmenu-${VERSION} | ||||||
| 	@cp LICENSE Makefile README config.mk dmenu.1 draw.h dmenu_run stest.1 ${SRC} dmenu-${VERSION} | 	@cp LICENSE Makefile README config.mk dmenu.1 draw.h dmenu_path dmenu_run stest.1 ${SRC} dmenu-${VERSION} | ||||||
| 	@tar -cf dmenu-${VERSION}.tar dmenu-${VERSION} | 	@tar -cf dmenu-${VERSION}.tar dmenu-${VERSION} | ||||||
| 	@gzip dmenu-${VERSION}.tar | 	@gzip dmenu-${VERSION}.tar | ||||||
| 	@rm -rf dmenu-${VERSION} | 	@rm -rf dmenu-${VERSION} | ||||||
| @ -43,8 +43,9 @@ dist: clean | |||||||
| install: all | install: all | ||||||
| 	@echo installing executables to ${DESTDIR}${PREFIX}/bin | 	@echo installing executables to ${DESTDIR}${PREFIX}/bin | ||||||
| 	@mkdir -p ${DESTDIR}${PREFIX}/bin | 	@mkdir -p ${DESTDIR}${PREFIX}/bin | ||||||
| 	@cp -f dmenu dmenu_run stest ${DESTDIR}${PREFIX}/bin | 	@cp -f dmenu dmenu_path dmenu_run stest ${DESTDIR}${PREFIX}/bin | ||||||
| 	@chmod 755 ${DESTDIR}${PREFIX}/bin/dmenu | 	@chmod 755 ${DESTDIR}${PREFIX}/bin/dmenu | ||||||
|  | 	@chmod 755 ${DESTDIR}${PREFIX}/bin/dmenu_path | ||||||
| 	@chmod 755 ${DESTDIR}${PREFIX}/bin/dmenu_run | 	@chmod 755 ${DESTDIR}${PREFIX}/bin/dmenu_run | ||||||
| 	@chmod 755 ${DESTDIR}${PREFIX}/bin/stest | 	@chmod 755 ${DESTDIR}${PREFIX}/bin/stest | ||||||
| 	@echo installing manual pages to ${DESTDIR}${MANPREFIX}/man1 | 	@echo installing manual pages to ${DESTDIR}${MANPREFIX}/man1 | ||||||
| @ -57,6 +58,7 @@ install: all | |||||||
| uninstall: | uninstall: | ||||||
| 	@echo removing executables from ${DESTDIR}${PREFIX}/bin | 	@echo removing executables from ${DESTDIR}${PREFIX}/bin | ||||||
| 	@rm -f ${DESTDIR}${PREFIX}/bin/dmenu | 	@rm -f ${DESTDIR}${PREFIX}/bin/dmenu | ||||||
|  | 	@rm -f ${DESTDIR}${PREFIX}/bin/dmenu_path | ||||||
| 	@rm -f ${DESTDIR}${PREFIX}/bin/dmenu_run | 	@rm -f ${DESTDIR}${PREFIX}/bin/dmenu_run | ||||||
| 	@rm -f ${DESTDIR}${PREFIX}/bin/stest | 	@rm -f ${DESTDIR}${PREFIX}/bin/stest | ||||||
| 	@echo removing manual page from ${DESTDIR}${MANPREFIX}/man1 | 	@echo removing manual page from ${DESTDIR}${MANPREFIX}/man1 | ||||||
|  | |||||||
							
								
								
									
										13
									
								
								dmenu_path
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								dmenu_path
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | cachedir=${XDG_CACHE_HOME:-"$HOME/.cache"} | ||||||
|  | if [ -d "$cachedir" ]; then | ||||||
|  | 	cache=$cachedir/dmenu_run | ||||||
|  | else | ||||||
|  | 	cache=$HOME/.dmenu_cache # if no xdg dir, fall back to dotfile in ~ | ||||||
|  | fi | ||||||
|  | IFS=: | ||||||
|  | if stest -dqr -n "$cache" $PATH; then | ||||||
|  | 	stest -flx $PATH | sort -u | tee "$cache" | ||||||
|  | else | ||||||
|  | 	cat "$cache" | ||||||
|  | fi | ||||||
							
								
								
									
										15
									
								
								dmenu_run
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								dmenu_run
									
									
									
									
									
								
							| @ -1,15 +1,2 @@ | |||||||
| #!/bin/sh | #!/bin/sh | ||||||
| cachedir=${XDG_CACHE_HOME:-"$HOME/.cache"} | dmenu_path | dmenu "$@" | ${SHELL:-"/bin/sh"} & | ||||||
| if [ -d "$cachedir" ]; then |  | ||||||
| 	cache=$cachedir/dmenu_run |  | ||||||
| else |  | ||||||
| 	cache=$HOME/.dmenu_cache # if no xdg dir, fall back to dotfile in ~ |  | ||||||
| fi |  | ||||||
| ( |  | ||||||
| 	IFS=: |  | ||||||
| 	if stest -dqr -n "$cache" $PATH; then |  | ||||||
| 		stest -flx $PATH | sort -u | tee "$cache" | dmenu "$@" |  | ||||||
| 	else |  | ||||||
| 		dmenu "$@" < "$cache" |  | ||||||
| 	fi |  | ||||||
| ) | ${SHELL:-"/bin/sh"} & |  | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user