--- trunk/mage/usr/lib/mage/magequery.sh 2005/09/09 16:51:51 229 +++ trunk/mage/usr/lib/mage/magequery.sh 2005/12/26 23:12:44 304 @@ -1,7 +1,7 @@ #!/bin/bash #query mage database for installed packages -# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/magequery.sh,v 1.10 2005-09-09 16:51:51 niro Exp $ +# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/magequery.sh,v 1.11 2005-12-26 23:12:44 niro Exp $ print_usage() { @@ -11,6 +11,7 @@ echo " -v VER searches for version VER, needs -n" echo " -b BUILD searches for build number BUILD, needs -n -v" echo " -i shows an inventory of all installed packages" + echo " -f searches packages name in given path" echo echo " Examples:" echo @@ -21,8 +22,9 @@ # default args: GET_INVENTORY=false +SEARCH_ONLY_PATH=false -while getopts "n:v:b:hi-" opt ; do +while getopts "n:v:b:f:hi-" opt ; do case "${opt}" in n) S_PNAME="${OPTARG}" @@ -38,6 +40,10 @@ i) GET_INVENTORY="true" ;; + f) + SEARCH_ONLY_PATH="true" + SEARCH_PATH="${OPTARG}" + ;; h) print_usage exit 0 @@ -54,10 +60,32 @@ done shift $(($OPTIND - 1)) - +source /etc/mage.rc.global source /etc/mage.rc RETVAL=1 +if [[ ${SEARCH_ONLY_PATH} = true ]] +then + unset S_PACKAGES + unset i pkg + for i in $(grep -irl "${SEARCH_PATH}" ${INSTALLDB}) + do + pkg="$(basename $(dirname ${i}))" + if [[ -z $(echo ${S_PACKAGES} | grep ${pkg}) ]] + then + S_PACKAGES="${S_PACKAGES} ${pkg}" + fi + done + + # show packages + for pkg in ${S_PACKAGES} + do + echo "${pkg}" + done + + exit 0 +fi + if [[ ${GET_INVENTORY} = true ]] then for package in $(find ${MROOT}${INSTALLDB} -mindepth 2 -maxdepth 2 -type d -printf "%h,%f\n" | sort)