--- trunk/mage/usr/lib/mage/magequery.sh 2008/10/05 10:33:04 777 +++ trunk/mage/usr/lib/mage/magequery.sh 2011/05/12 22:20:59 1290 @@ -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.13 2008-10-05 10:33:04 niro Exp $ +# query mage database for installed packages +# $Id$ print_usage() { @@ -12,7 +12,7 @@ echo " -b BUILD searches for build number BUILD, needs -n -v" echo " -c CAT shows all packages of given categorie" echo " -i shows an inventory of all installed packages" - echo " -f PATH searches packages name in given path" + echo " -f PATH searches package names in given path" echo echo " Examples:" echo @@ -26,45 +26,28 @@ SEARCH_ONLY_PATH=false SEARCH_ONLY_CAT=false -while getopts "n:v:b:f:c:hi-" opt ; do - case "${opt}" in - n) - S_PNAME="${OPTARG}" - ;; - - v) - S_PVER="${OPTARG}" - ;; - - b) - S_PBUILD="${OPTARG}" - ;; - i) - GET_INVENTORY="true" - ;; - f) - SEARCH_ONLY_PATH="true" - SEARCH_PATH="${OPTARG}" - ;; - c) - SEARCH_ONLY_CAT="true" - SEARCH_CAT="${OPTARG}" - ;; - h) - print_usage - exit 0 - ;; - - -) break - ;; - - *) - print_usage - exit 1 - ;; +# no params given, or is only an arg not ar param, exit +if [[ $# -lt 1 ]] || [[ ${1:0:1} != - ]] +then + print_usage + exit 1 +fi + +# very basic getops +for i in $* +do + case $1 in + -n) shift; S_PNAME="$1" ;; + -v) shift; S_PVER="$1" ;; + -b) shift; S_PBUILD="$1" ;; + -i) GET_INVENTORY="true" ;; + -f) SEARCH_ONLY_PATH="true"; shift; SEARCH_PATH="$1" ;; + -c) SEARCH_ONLY_CAT="true"; shift; SEARCH_CAT="$1" ;; + -h) print_usage; exit 0 ;; + -*) print_usage; exit 1 ;; esac + shift done -shift $(($OPTIND - 1)) source /etc/mage.rc.global source /etc/mage.rc @@ -76,6 +59,11 @@ unset i pkg for i in $(fgrep -rl "${SEARCH_PATH}" ${INSTALLDB}) do + # ignore magefiles! + case ${i} in + *.mage) continue ;; + esac + # print categorie and pkgname pkg="$(basename ${i%/*/*})/$(basename ${i%/*})" if [[ -z $(echo ${S_PACKAGES} | grep ${pkg}) ]] @@ -113,7 +101,7 @@ do pcat="$(basename $(echo ${package} | cut -d, -f1))" pname="$(echo ${package} | cut -d, -f2)" - if [ -z "${invlist}" ] + if [[ -z ${invlist} ]] then invlist="${pcat}/${pname}" else @@ -135,21 +123,21 @@ x=$(basename ${i}) PNAME=${x%-*-*} - PVER=$(echo ${x#${PNAME}-}| cut -d- -f1) - PBUILD=$(echo ${x#${PNAME}-}| cut -d- -f2) + PVER=$(echo ${x#${PNAME}-} | cut -d- -f1) + PBUILD=$(echo ${x#${PNAME}-} | cut -d- -f2) if [[ ${PNAME} == ${S_PNAME} ]] then INST_PNAME=yes - if [ -n "${S_PVER}" ] + if [[ -n ${S_PVER} ]] then if [[ ${PVER} == ${S_PVER} ]] then INST_PVER=yes fi - if [ -n "${S_PBUILD}" ] + if [[ -n ${S_PBUILD} ]] then if [[ ${PBUILD} == ${S_PBUILD} ]] then @@ -159,9 +147,9 @@ fi # search for pname only - if [ -n "${S_PNAME}" -a -z "${S_PVER}" -a -z "${S_PBUILD}" ] + if [[ -n ${S_PNAME} ]] && [[ -z ${S_PVER} ]] && [[ -z ${S_PBUILD} ]] then - if [ "${INST_PNAME}" = yes ] + if [[ ${INST_PNAME} = yes ]] then echo "${S_PNAME} is installed [ ${PNAME}-${PVER}-${PBUILD} ]" RETVAL=0 @@ -170,9 +158,9 @@ fi # search for pname and pver - if [ -n "${S_PNAME}" -a -n "${S_PVER}" -a -z "${S_PBUILD}" ] + if [[ -n ${S_PNAME} ]] && [[ -n ${S_PVER} ]] && [[ -z ${S_PBUILD} ]] then - if [ "${INST_PNAME}" = "yes" -a "${INST_PVER}" = "yes" ] + if [[ ${INST_PNAME} = yes ]] && [[ ${INST_PVER} = yes ]] then echo "${S_PNAME}-${S_PVER} is installed [ ${PNAME}-${PVER}-${PBUILD} ]" RETVAL=0 @@ -181,9 +169,9 @@ fi # search for pname, pver and pbuild - if [ -n "${S_PNAME}" -a -n "${S_PVER}" -a -n "${S_PBUILD}" ] + if [[ -n ${S_PNAME} ]] && [[ -n ${S_PVER} ]] && [[ -n ${S_PBUILD} ]] then - if [ "${INST_PNAME}" = "yes" -a "${INST_PVER}" = "yes" -a "${INST_PBUILD}" = "yes" ] + if [[ ${INST_PNAME} = yes ]] && [[ ${INST_PVER} = yes ]] && [[ ${INST_PBUILD} = yes ]] then echo "${S_PNAME}-${S_PVER}-${S_PBUILD} is installed [ ${PNAME}-${PVER}-${PBUILD} ]" RETVAL=0