#!/bin/sh
usage_msg="usage:
portsvar.sh [-a] [-e] [-w target] [-h] [var=val ...] var1 [var2 ...]
print out variable that includes var1 [var2 ...] through bsd.port.mk
-a print all variables defined through bsd.port.mk
-e regex search mode
-w set target bsd.*.mk name, for ex. -w kde
-h print this message"
alllistmode=off
regexmode=off
while getopts aew:h? option
do
case "$option" in
a)
alllistmode=on
;;
e)
regexmode=on
;;
w)
case $OPTARG in
apache) setvar="$setvar USE_APACHE=yes";;
autotools) setvar="$setvar USE_AUTOTOOLS=yes";;
database) setvar="$setvar USE_MYSQL=yes USE_PGSQL=yes"
setvar="$setvar USE_BDB=yes";;
emacs) setvar="$setvar EMACS_PORT_NAME=yes";;
gcc) setvar="$setvar USE_GCC=yes";;
gnome) setvar="$setvar USE_GNOME=yes";;
gnustep) setvar="$setvar USE_GNUSTEP=yes";;
gstreamer) setvar="$setvar USE_GSTREAMER=yes";;
java) setvar="$setvar USE_JAVA=yes";;
kde) setvar="$setvar USE_QT_VER=3";;
openssl) setvar="$setvar USE_OPENSSL=yes";;
php) setvar="$setvar USE_PHP=yes";;
python) setvar="$setvar USE_PYTHON=yes";;
ruby) setvar="$setvar USE_RUBY=yes";;
sdl) setvar="$setvar USE_SDL=yes";;
tcl) setvar="$setvar USE_TCL=yes USE_TK=yes";;
esac
;;
h|\?)
echo "$usage_msg" 1>&2
exit 1
;;
esac
done
shift $(($OPTIND - 1))
for target in $@
do
case $target in
*=*)
setvar="$setvar $target"
;;
*)
var="$var $target"
;;
esac
done
case $alllistmode in
on)
make -f bsd.port.mk $setvar -dv 2>&1 | grep Global: |
sed 's/Global://' | sort -u | uniq
exit 0
;;
esac
case $var in
"")
echo "$usage_msg" 1>&2
exit 1
;;
esac
case $regexmode in
on)
regex="^ "
for target in $var
do
regex="$regex|^[^=]*${target}.*=.*"
done
make -f bsd.port.mk $setvar -dv 2>&1 | grep Global: |
sed 's/Global://' | sort -u | uniq | egrep "($regex)"
;;
off)
for target in $var
do
echo -n "$target = "
make -f bsd.port.mk $setvar -V $target
done
;;
esac