Magellan Linux

Diff of /trunk/mage/usr/lib/mage/magequery.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3093 by niro, Mon Mar 12 23:23:28 2012 UTC revision 3094 by niro, Mon Jun 4 16:49:01 2018 UTC
# Line 42  fi Line 42  fi
42  for i in $*  for i in $*
43  do  do
44   case $1 in   case $1 in
45   -n) shift; S_PNAME="$1" ;;   -n) shift; S_PNAME="$1"; if [[ -z ${S_PNAME} ]]; then print_usage; exit 1; fi ;;
46   -v) shift; S_PVER="$1" ;;   -v) shift; S_PVER="$1"; if [[ -z ${S_PVER} ]]; then print_usage; exit 1; fi ;;
47   -b) shift; S_PBUILD="$1" ;;   -b) shift; S_PBUILD="$1"; if [[ -z ${S_PBUILD} ]]; then print_usage; exit 1; fi ;;
48   -i) GET_INVENTORY="true" ;;   -i) GET_INVENTORY="true" ;;
49   -f) SEARCH_ONLY_PATH="true"; shift; SEARCH_PATH="$1" ;;   -f) SEARCH_ONLY_PATH="true"; shift; SEARCH_PATH="$1"; if [[ -z ${SEARCH_PATH} ]]; then print_usage; exit 1; fi ;;
50   -e) SEARCH_ONLY_PATH="true"; SEARCH_EXACT_FILENAME="true"; shift; SEARCH_PATH="$1" ;;   -e) SEARCH_ONLY_PATH="true"; SEARCH_EXACT_FILENAME="true"; shift; SEARCH_PATH="$1"; if [[ -z ${SEARCH_PATH} ]]; then print_usage; exit 1; fi  ;;
51   -c) SEARCH_ONLY_CAT="true"; shift; SEARCH_CAT="$1" ;;   -c) SEARCH_ONLY_CAT="true"; shift; SEARCH_CAT="$1"; if [[ -z ${SEARCH_CAT} ]]; then print_usage; exit 1; fi ;;
52   -h) print_usage; exit 0 ;;   -h) print_usage; exit 0 ;;
53   -*) print_usage; exit 1 ;;   -*) print_usage; exit 1 ;;
54   esac   esac
# Line 101  if [[ ${SEARCH_ONLY_CAT} = true ]] Line 101  if [[ ${SEARCH_ONLY_CAT} = true ]]
101  then  then
102   # no packages of SEARCH_CAT are installed   # no packages of SEARCH_CAT are installed
103   [[ ! -d ${MROOT}${INSTALLDB}/${SEARCH_CAT} ]] && exit 1   [[ ! -d ${MROOT}${INSTALLDB}/${SEARCH_CAT} ]] && exit 1
104     find ${MROOT}${INSTALLDB}/${SEARCH_CAT} -maxdepth 1 -mindepth 1 -printf "${SEARCH_CAT}/%P\n" | sort
  for i in ${INSTALLDB}/${SEARCH_CAT}/*  
  do  
  # print categorie and pkgname  
  echo "$(basename ${i%/*})/$(basename ${i})"  
  done  
105    
106   exit 0   exit 0
107  fi  fi
108    
109    # generate multidim array
110    declare -i INSTALL_DATABASE_COUNT=0
111    for line in $(find ${MROOT}${INSTALLDB} -maxdepth 2 -mindepth 2 -printf '%P\n' | sort)
112    do
113     INSTALL_DATABASE_PCAT[${INSTALL_DATABASE_COUNT}]="${line%/*}"
114     pkgname="${line#*/}"
115     INSTALL_DATABASE_PNAME[${INSTALL_DATABASE_COUNT}]="${pkgname%-*-*}"
116     pkgversion="${pkgname//${pkgname%-*-*}-}"
117     INSTALL_DATABASE_PVER[${INSTALL_DATABASE_COUNT}]="${pkgversion%-*}"
118     INSTALL_DATABASE_PBUILD[${INSTALL_DATABASE_COUNT}]="${pkgname##*-}"
119     (( INSTALL_DATABASE_COUNT++ ))
120    done
121    
122  if [[ ${GET_INVENTORY} = true ]]  if [[ ${GET_INVENTORY} = true ]]
123  then  then
124   for package in $(find ${MROOT}${INSTALLDB} -mindepth 2 -maxdepth 2 -type d -printf "%h,%f\n" | sort)   # build the list first
125     for ((i=0; i<INSTALL_DATABASE_COUNT; i++))
126   do   do
127   pcat="$(basename $(echo ${package} | cut -d, -f1))"   echo "${INSTALL_DATABASE_PCAT[${i}]}/${INSTALL_DATABASE_PNAME[${i}]}-${INSTALL_DATABASE_PVER[${i}]}-${INSTALL_DATABASE_PBUILD[${i}]}"
  pname="$(echo ${package} | cut -d, -f2)"  
  if [[ -z ${invlist} ]]  
  then  
  invlist="${pcat}/${pname}"  
  else  
  invlist="${invlist}  
 ${pcat}/${pname}"  
  fi  
128   done   done
129    
  # now show the list  
  echo "${invlist}"  
130   exit 0   exit 0
131  fi  fi
132    
133  for i in ${MROOT}${INSTALLDB}/*/*  for ((i=0; i<INSTALL_DATABASE_COUNT; i++))
134  do  do
135   INST_PNAME=no   if [[ ${INSTALL_DATABASE_PNAME[${i}]} == ${S_PNAME} ]]
  INST_PVER=no  
  INST_PBUILD=no  
   
  x=$(basename ${i})  
  PNAME=${x%-*-*}  
  PVER=$(echo ${x#${PNAME}-} | cut -d- -f1)  
  PBUILD=$(echo ${x#${PNAME}-} | cut -d- -f2)  
   
  if [[ ${PNAME} == ${S_PNAME} ]]  
136   then   then
137   INST_PNAME=yes   INST_PNAME=yes
138    
139   if [[ -n ${S_PVER} ]]   if [[ -n ${S_PVER} ]]
140   then   then
141   if [[ ${PVER} == ${S_PVER} ]]   if [[ ${INSTALL_DATABASE_PVER[${i}]} == ${S_PVER} ]]
142   then   then
143   INST_PVER=yes   INST_PVER=yes
144   fi   fi
145    
146   if [[ -n ${S_PBUILD} ]]   if [[ -n ${S_PBUILD} ]]
147   then   then
148   if [[ ${PBUILD} == ${S_PBUILD} ]]   if [[ ${INSTALL_DATABASE_PBUILD[${i}]} == ${S_PBUILD} ]]
149   then   then
150   INST_PBUILD=yes   INST_PBUILD=yes
151   fi   fi
# Line 167  do Line 157  do
157   then   then
158   if [[ ${INST_PNAME} = yes ]]   if [[ ${INST_PNAME} = yes ]]
159   then   then
160   echo "${S_PNAME} is installed [ ${PNAME}-${PVER}-${PBUILD} ]"   echo "${S_PNAME} is installed [ ${INSTALL_DATABASE_PCAT[${i}]}/${INSTALL_DATABASE_PNAME[${i}]}-${INSTALL_DATABASE_PVER[${i}]}-${INSTALL_DATABASE_PBUILD[${i}]} ]"
161   RETVAL=0   RETVAL=0
162   break   break
163   fi   fi
# Line 178  do Line 168  do
168   then   then
169   if [[ ${INST_PNAME} = yes ]] && [[ ${INST_PVER} = yes ]]   if [[ ${INST_PNAME} = yes ]] && [[ ${INST_PVER} = yes ]]
170   then   then
171   echo "${S_PNAME}-${S_PVER} is installed [ ${PNAME}-${PVER}-${PBUILD} ]"   echo "${S_PNAME}-${S_PVER} is installed [ ${INSTALL_DATABASE_PCAT[${i}]}/${INSTALL_DATABASE_PNAME[${i}]}-${INSTALL_DATABASE_PVER[${i}]}-${INSTALL_DATABASE_PBUILD[${i}]} ]"
172   RETVAL=0   RETVAL=0
173   break   break
174   fi   fi
# Line 189  do Line 179  do
179   then   then
180   if [[ ${INST_PNAME} = yes ]] && [[ ${INST_PVER} = yes ]] && [[ ${INST_PBUILD} = yes ]]   if [[ ${INST_PNAME} = yes ]] && [[ ${INST_PVER} = yes ]] && [[ ${INST_PBUILD} = yes ]]
181   then   then
182   echo "${S_PNAME}-${S_PVER}-${S_PBUILD} is installed [ ${PNAME}-${PVER}-${PBUILD} ]"   echo "${S_PNAME}-${S_PVER}-${S_PBUILD} is installed [ ${INSTALL_DATABASE_PCAT[${i}]}/${INSTALL_DATABASE_PNAME[${i}]}-${INSTALL_DATABASE_PVER[${i}]}-${INSTALL_DATABASE_PBUILD[${i}]} ]"
183   RETVAL=0   RETVAL=0
184   break   break
185   fi   fi

Legend:
Removed from v.3093  
changed lines
  Added in v.3094