dmenu_run: Split cache logic to dmenu_path again
authorQuentin Glidic <sardemff7+hg@sardemff7.net>
Mon, 30 Jul 2012 15:02:12 +0000 (17:02 +0200)
committerQuentin Glidic <sardemff7+hg@sardemff7.net>
Mon, 30 Jul 2012 15:02:12 +0000 (17:02 +0200)
This allows to run dmenu_path to update the cache using
a packager manager hook system

Makefile
dmenu_path [new file with mode: 0644]
dmenu_run

index c127f6a..f011ad7 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -35,7 +35,7 @@ clean:
 dist: clean
        @echo creating dist tarball
        @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}
        @gzip dmenu-${VERSION}.tar
        @rm -rf dmenu-${VERSION}
@@ -43,8 +43,9 @@ dist: clean
 install: all
        @echo installing executables to ${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_path
        @chmod 755 ${DESTDIR}${PREFIX}/bin/dmenu_run
        @chmod 755 ${DESTDIR}${PREFIX}/bin/stest
        @echo installing manual pages to ${DESTDIR}${MANPREFIX}/man1
@@ -57,6 +58,7 @@ install: all
 uninstall:
        @echo removing executables from ${DESTDIR}${PREFIX}/bin
        @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/stest
        @echo removing manual page from ${DESTDIR}${MANPREFIX}/man1
diff --git a/dmenu_path b/dmenu_path
new file mode 100644 (file)
index 0000000..338bac4
--- /dev/null
@@ -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
index 052e51b..834ede5 100755 (executable)
--- a/dmenu_run
+++ b/dmenu_run
@@ -1,15 +1,2 @@
 #!/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" | dmenu "$@"
-       else
-               dmenu "$@" < "$cache"
-       fi
-) | ${SHELL:-"/bin/sh"} &
+dmenu_path | dmenu "$@" | ${SHELL:-"/bin/sh"} &