#!/bin/bash # default die function die() { echo -e ${COLRED}"$@"${COLDEFAULT} exit 1 } # mage cvs location CVS_DEST=$(mktemp -d) CVS_MODULE=magellan-src/mage CVS_OPTS="" CVS_ROOT=":pserver:anonymous:@127.0.0.1:/magellan-cvs" # repo location MPK_REPO=/var/www/magellan/magellan-dev # mage-db location MAGE_REPO=/var/www/magellan/magellan-dev/rsync/mage # supported arches ARCHES="i686 x86_64" # supported distribuions DISTRIBUTIONS="stable testing unstable" # search dist DISTRIBUTION="$1" # stable/testing/unstable [[ -z ${DISTRIBUTION} ]] && die "You must tell me a distribution!" # used mage profile MAGE_PROFILE="mage070" MISSING_PKGS="" DIST_MISSING="" echo "Running QA lint checks ..." echo # get cvs echo "Getting newest mage version ..." cd ${CVS_DEST} cvs -Q -d ${CVS_ROOT} login cvs -Q -z3 -d ${CVS_ROOT} co ${CVS_MODULE} # setup mage profile ln -snf ${MAGE_REPO}/profiles/${MAGE_PROFILE} /etc/mage-profile source ${CVS_DEST}/magellan-src/mage/usr/lib/mage/mage4.functions.sh echo "Building list ...." for arch in ${ARCHES} do for pkg in ${MAGE_REPO}/*/* do pcat="$(basename $(dirname ${pkg}))" # excludes [[ ${pcat} = profiles ]] && continue [[ ${pcat} = fake ]] && continue [[ ${pcat} = include ]] && continue pname="$(basename ${pkg})" # echo "${pcat} ${pname}" MAGEDIR=${MAGE_REPO} MAGE_DISTRIBUTION=${DISTRIBUTION} ARCH=${arch} # ignore blacklist # blacklisted(){ return 0; } pkg=$(get_highest_magefile ${pcat} ${pname}) #echo "DEBUG: pkg=${pkg}" # search all dist dirs found=1 for dist in ${DISTRIBUTIONS} do pkgname="$(get_value_from_magefile PKGNAME ${pkg})" # abort and warn if nothing found if [[ -z ${pkgname} ]] then echo "WARNING: nothing found for ${pcat}/${pname} with dist '${DISTRIBUTION}' for arch '${ARCH}'" if [[ -z $(echo ${DIST_MISSING} | fgrep "${pcat}/${pname}-${ARCH}") ]] then DIST_MISSING="${DIST_MISSING} ${pcat}/${pname}-${ARCH}" fi # do not add the previous item on the list found=0 continue fi mpk="${MPK_REPO}/${dist}/packages/${ARCH}/${pkgname}.mpk" #echo ${mpk} if [ -f ${mpk} ] then #echo "found: ${mpk}" found=0 break else #echo "missing: ${mpk}" found=1 fi done #echo "DEBUG: found=${found}" [[ ${found} = 1 ]] && MISSING_PKGS="${MISSING_PKGS} ${ARCH}:$(basename ${mpk})" done done echo echo "Missing following packages:" for i in ${MISSING_PKGS} do echo "${i}" done | sort echo echo "Following packages are not in dist '${DISTRIBUTION}' or blacklisted:" for i in ${DIST_MISSING} do echo "${i}" done | sort rm -rf ${CVS_DEST}