dmenu_run: Split cache logic to dmenu_path again dec9a288
This allows to run dmenu_path to update the cache using
a packager manager hook system
Quentin Glidic · 2012-07-30 17:02 3 file(s) · +18 −16
Makefile +4 −2
35 35
dist: clean
36 36
	@echo creating dist tarball
37 37
	@mkdir -p dmenu-${VERSION}
38 -
	@cp LICENSE Makefile README config.mk dmenu.1 draw.h dmenu_run stest.1 ${SRC} dmenu-${VERSION}
38 +
	@cp LICENSE Makefile README config.mk dmenu.1 draw.h dmenu_path dmenu_run stest.1 ${SRC} dmenu-${VERSION}
39 39
	@tar -cf dmenu-${VERSION}.tar dmenu-${VERSION}
40 40
	@gzip dmenu-${VERSION}.tar
41 41
	@rm -rf dmenu-${VERSION}
43 43
install: all
44 44
	@echo installing executables to ${DESTDIR}${PREFIX}/bin
45 45
	@mkdir -p ${DESTDIR}${PREFIX}/bin
46 -
	@cp -f dmenu dmenu_run stest ${DESTDIR}${PREFIX}/bin
46 +
	@cp -f dmenu dmenu_path dmenu_run stest ${DESTDIR}${PREFIX}/bin
47 47
	@chmod 755 ${DESTDIR}${PREFIX}/bin/dmenu
48 +
	@chmod 755 ${DESTDIR}${PREFIX}/bin/dmenu_path
48 49
	@chmod 755 ${DESTDIR}${PREFIX}/bin/dmenu_run
49 50
	@chmod 755 ${DESTDIR}${PREFIX}/bin/stest
50 51
	@echo installing manual pages to ${DESTDIR}${MANPREFIX}/man1
57 58
uninstall:
58 59
	@echo removing executables from ${DESTDIR}${PREFIX}/bin
59 60
	@rm -f ${DESTDIR}${PREFIX}/bin/dmenu
61 +
	@rm -f ${DESTDIR}${PREFIX}/bin/dmenu_path
60 62
	@rm -f ${DESTDIR}${PREFIX}/bin/dmenu_run
61 63
	@rm -f ${DESTDIR}${PREFIX}/bin/stest
62 64
	@echo removing manual page from ${DESTDIR}${MANPREFIX}/man1
dmenu_path (added) +13 −0
1 +
#!/bin/sh
2 +
cachedir=${XDG_CACHE_HOME:-"$HOME/.cache"}
3 +
if [ -d "$cachedir" ]; then
4 +
	cache=$cachedir/dmenu_run
5 +
else
6 +
	cache=$HOME/.dmenu_cache # if no xdg dir, fall back to dotfile in ~
7 +
fi
8 +
IFS=:
9 +
if stest -dqr -n "$cache" $PATH; then
10 +
	stest -flx $PATH | sort -u | tee "$cache"
11 +
else
12 +
	cat "$cache"
13 +
fi
dmenu_run +1 −14
1 1
#!/bin/sh
2 -
cachedir=${XDG_CACHE_HOME:-"$HOME/.cache"}
3 -
if [ -d "$cachedir" ]; then
4 -
	cache=$cachedir/dmenu_run
5 -
else
6 -
	cache=$HOME/.dmenu_cache # if no xdg dir, fall back to dotfile in ~
7 -
fi
8 -
(
9 -
	IFS=:
10 -
	if stest -dqr -n "$cache" $PATH; then
11 -
		stest -flx $PATH | sort -u | tee "$cache" | dmenu "$@"
12 -
	else
13 -
		dmenu "$@" < "$cache"
14 -
	fi
15 -
) | ${SHELL:-"/bin/sh"} &
2 +
dmenu_path | dmenu "$@" | ${SHELL:-"/bin/sh"} &