#!/bin/bash source /usr/lib/mage/mage4.functions.sh SMAGEFILE="$1" if [[ -z ${SMAGEFILE} ]] then echo "No smagefile given." exit 1 fi [[ -n $2 ]] && [[ $2 != -st ]] && CVS_COMMIT="$2" if [[ $3 = -st ]] || [[ $2 = -st ]] then echo "Using SRCTARBALL ..." USE_SRCTARBALL=true fi #CURARCH=i686 CURARCH=x86_64 BUILDROOT=/mnt/BUILDROOT-${CURARCH} #BUILDROOT=/mnt/BUILDROOT SMAGEDIR=$(dirname ${SMAGEFILE}) MD5DIR=${SMAGEDIR}/md5 MD5NAME=$(basename $1 .smage2).md5 SMAGENAME=$(basename $1) CURPNAME=$(magename2pname $1) CURPVER=$(magename2pver $1) CURPBUILD=$(magename2pbuild $(basename $1 .smage2)) PKGNAME=${CURPNAME}-${CURPVER}-${CURARCH}-${CURPBUILD}.mpk SRCPKGNAME=${CURPNAME}-${CURPVER}-${CURPBUILD}.mpks SSHLOGIN="tjoke@magellan-linux.de:/var/www/htdocs/magellan/magellan-dev/unstable/packages" SRCTARBALL_URI="http://magellan-linux.de/magellan/magellan-dev/unstable/packages/src" # abort if the package is already installed in BUILDROOT get_value_from_file() { local var="$1" local file="$2" local value # source /etc/mage.rc to get the includes right source /etc/mage.rc.global source /etc/mage.rc # evaluate the value source ${file} $> /dev/null eval value=\$$(echo ${var}) echo "${value}" } CURPCATEGORIE=$(get_value_from_file PCATEGORIE ${SMAGEFILE}) INSTALLDB_BUILDROOT=$(get_value_from_file INSTALLDB ${BUILDROOT}/etc/mage.rc) if [[ -d ${BUILDROOT}/${INSTALLDB_BUILDROOT}/${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD} ]] then echo "Package '${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD}' already installed in ${BUILDROOT}. Aborting!" exit 1 fi # delete md5 if exist [[ -f ${MD5DIR}/${MD5NAME} ]] && rm ${MD5DIR}/${MD5NAME} if [[ ${USE_SRCTARBALL} != true ]] then /sbin/smage2 download ${SMAGEFILE} /sbin/smage2 calcmd5 ${SMAGEFILE} ${MD5DIR} pushd ${SMAGEDIR}/../ cvs add ${CURPNAME} pushd ${SMAGEDIR} cvs add md5 cvs add ${SMAGENAME} md5/${MD5NAME} [[ -z ${CVS_COMMIT} ]] && CVS_COMMIT="auto added: ver bump to ${CURPVER}-${CURPBUILD}" cvs commit -m "${CVS_COMMIT}" ${SMAGENAME} md5/${MD5NAME} popd fi sudo -s << EOF :> ${BUILDROOT}/.installrc echo "CURPNAME=${CURPNAME}" >> ${BUILDROOT}/.installrc echo "CURPVER=${CURPVER}" >> ${BUILDROOT}/.installrc echo "CURPBUILD=${CURPBUILD}" >> ${BUILDROOT}/.installrc echo "CURARCH=${CURARCH}" >> ${BUILDROOT}/.installrc echo "SMAGENAME=${SMAGENAME}" >> ${BUILDROOT}/.installrc echo "MD5NAME=${MD5NAME}" >> ${BUILDROOT}/.installrc echo "PKGNAME=${PKGNAME}" >> ${BUILDROOT}/.installrc echo "SPKGNAME=${SPKGNAME}" >> ${BUILDROOT}/.installrc echo '/usr/bin/whoami' >> ${BUILDROOT}/.installrc echo 'source /etc/profile' >> ${BUILDROOT}/.installrc #echo 'echo PATH=\${PATH};read' >> ${BUILDROOT}/.installrc echo 'cd /var/cache/mage/smage' >> ${BUILDROOT}/.installrc echo 'cvs update include' >> ${BUILDROOT}/.installrc echo 'cvs update -dPA ${CURPNAME}' >> ${BUILDROOT}/.installrc echo 'USE_SRCTARBALL=${USE_SRCTARBALL}' >> ${BUILDROOT}/.installrc echo 'if [[ \${USE_SRCTARBALL} != true ]];then ' >> ${BUILDROOT}/.installrc echo '/sbin/smage2 /var/cache/mage/smage/${CURPNAME}/${SMAGENAME} || exit 1' >> ${BUILDROOT}/.installrc echo 'else' >> ${BUILDROOT}/.installrc echo 'echo "Fetching SRC_TARBALL"' >> ${BUILDROOT}/.installrc echo 'pushd /var/tmp/magebuild > /dev/null' >> ${BUILDROOT}/.installrc echo "SRCTARBALL=${CURPNAME}-${CURPVER}-${CURPBUILD}.mpks" >> ${BUILDROOT}/.installrc echo "SRCTARBALL_URI=${SRCTARBALL_URI}" >> ${BUILDROOT}/.installrc echo '/usr/bin/wget -c \${SRCTARBALL_URI}/\${SRCTARBALL}' >> ${BUILDROOT}/.installrc echo '/sbin/smage2 -st \${SRCTARBALL}' >> ${BUILDROOT}/.installrc echo '[[ -f \${SRCTARBALL} ]] && rm \${SRCTARBALL}' >> ${BUILDROOT}/.installrc echo 'popd > /dev/null' >> ${BUILDROOT}/.installrc echo 'fi' >> ${BUILDROOT}/.installrc echo '/sbin/mage install ${CURPNAME} || exit 1' >> ${BUILDROOT}/.installrc echo 'mv /var/cache/mage/packages/${PKGNAME} /BUILDED' >> ${BUILDROOT}/.installrc echo 'mv /var/cache/mage/packages/sources/${SRCPKGNAME} /BUILDED/sources' >> ${BUILDROOT}/.installrc echo 'rm -rf /var/cache/mage/sources/${CURPNAME}' >> ${BUILDROOT}/.installrc EOF sudo -H /sbin/chroot ${BUILDROOT} /bin/bash /.installrc sudo rm ${BUILDROOT}/.installrc if [[ -f ${BUILDROOT}/BUILDED/${PKGNAME} ]] then scp ${BUILDROOT}/BUILDED/${PKGNAME} ${SSHLOGIN}/${CURARCH}/ else echo "Error: ${BUILDROOT}/BUILDED/${PKGNAME} missing!" exit 1 fi if [[ -f ${BUILDROOT}/BUILDED/sources/${SRCPKGNAME} ]] then scp ${BUILDROOT}/BUILDED/sources/${SRCPKGNAME} ${SSHLOGIN}/src/ else echo "Error: ${BUILDROOT}/BUILDED/${SRCPKGNAME} missing!" exit 1 fi [[ -d /var/cache/mage/sources/${CURPNAME} ]] && rm -rf /var/cache/mage/sources/${CURPNAME}