x11-wm/fluxbox fluxbox-generate_menu lists all available programs.
Alexey Shuvaev
shuvaev at physik.uni-wuerzburg.de
Mon Sep 22 17:52:52 UTC 2008
Hello!
The script fluxbox-generate_menu shipped with current versions of
fluxbox (fluxbox-1.1.0.1_1 and 1.1.1 too, I think) produces
menu with all known programs. The reason for it is find_it* family
of functions used to determine if the program exists (see attached test.sh).
It expects that 'hash' will return non-zero exit code when it cannot find
the command and it is true on linix (some Ubuntu with 'dash', surprisingly
enough, man says it is BSD sh), but not here:
~> uname -a
FreeBSD wep4035.physik.uni-wuerzburg.de 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Sun Sep 21 18:51:53 CEST 2008 root at wep4035.physik.uni-wuerzburg.de:/usr/obj/usr/src/sys/GENERIC amd64
~> ./test.sh ls
Found ls
~> ./test.sh bla-bla-non-existent
Found bla-bla-non-existent
Substituting 'hash' with 'which' solves the problem more or less,
but I am not a sh guru to claim it is 100% correct.
It could be also a sh(1) bug...
Alexey.
-------------- next part --------------
#!/bin/sh
find_it() {
[ -n "$1" ] && hash $1 2> /dev/null && shift && "$@"
}
find_it $1 echo "Found $1"
exit 0
More information about the freebsd-ports
mailing list