--- trunk/pkgtools/add2svn.sh 2009/04/24 19:17:49 821 +++ trunk/pkgtools/add2svn.sh 2011/05/31 17:44:01 1331 @@ -16,9 +16,15 @@ fi #CURARCH=i686 -CURARCH=x86_64 +#CURARCH=x86_64 -BUILDROOT=/mnt/BUILDROOT-${CURARCH}-svn +if [[ -z ${CURARCH} ]] +then + echo "Environment variable \${CURARCH} not given. Aborted." + exit 1 +fi + +BUILDROOT=/mnt/BUILDROOT-"${CURARCH}"-svn SMAGEDIR=$(dirname ${SMAGEFILE}) MD5DIR=${SMAGEDIR}/md5 @@ -50,13 +56,49 @@ echo "${value}" } +get_function_from_file() +{ + local function="$1" + local file="$2" + + # 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 + export -f ${function} +} + CURPCATEGORIE=$(get_value_from_file PCATEGORIE ${SMAGEFILE}) INSTALLDB_BUILDROOT=$(get_value_from_file INSTALLDB ${BUILDROOT}/etc/mage.rc) +CURSPLITPACKAGES="$(get_value_from_file SPLIT_PACKAGES ${SMAGEFILE})" -if [[ -d ${BUILDROOT}/${INSTALLDB_BUILDROOT}/${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD} ]] +if [[ -z ${CURSPLITPACKAGES} ]] then - echo "Package '${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD}' already installed in ${BUILDROOT}. Aborting!" - exit 1 + if [[ -d ${BUILDROOT}/${INSTALLDB_BUILDROOT}/${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD} ]] + then + echo "Package '${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD}' already installed in ${BUILDROOT}. Aborting!" + exit 1 + fi +else + for i in ${CURSPLITPACKAGES} + do + if [[ -d ${BUILDROOT}/${INSTALLDB_BUILDROOT}/${CURPCATEGORIE}/${i}-${CURPVER}-${CURPBUILD} ]] + then + SPLITINSTALLED+=" ${CURPCATEGORIE}/${i}-${CURPVER}-${CURPBUILD}" + fi + done + if [[ ! -z ${SPLITINSTALLED} ]] + then + echo "Following SPLIT-Packages are installled from ${CURPCATEGORIE}/${CURPNAME}-${CURPVER}-${CURPBUILD} in ${BUILDROOT}:" + for i in ${SPLITINSTALLED} + do + echo " ${i}" + done + echo "Aborted." + exit 1 + fi fi # delete md5 if exist @@ -73,7 +115,7 @@ svn add ${SMAGENAME} md5/${MD5NAME} [[ -z ${SVN_COMMIT} ]] && SVN_COMMIT="auto added: ver bump to ${CURPVER}-${CURPBUILD}" - svn commit -m "${SVN_COMMIT}" ${SMAGENAME} md5/${MD5NAME} + svn commit -m "${SVN_COMMIT}" ../${CURPNAME} ${SMAGENAME} md5 md5/${MD5NAME} popd fi @@ -81,11 +123,14 @@ :> ${BUILDROOT}/.installrc echo "export LC_ALL=C" >> ${BUILDROOT}/.installrc +# do not start any services, set mage bootstrap flag +echo "export MAGE_BOOTSTRAP=true" >> ${BUILDROOT}/.installrc echo "REPO=${REPO}" >> ${BUILDROOT}/.installrc echo "CURPNAME=${CURPNAME}" >> ${BUILDROOT}/.installrc echo "CURPVER=${CURPVER}" >> ${BUILDROOT}/.installrc echo "CURPBUILD=${CURPBUILD}" >> ${BUILDROOT}/.installrc echo "CURARCH=${CURARCH}" >> ${BUILDROOT}/.installrc +echo "CURSPLITPACKAGES=\"${CURSPLITPACKAGES}\"" >> ${BUILDROOT}/.installrc echo "SMAGENAME=${SMAGENAME}" >> ${BUILDROOT}/.installrc echo "MD5NAME=${MD5NAME}" >> ${BUILDROOT}/.installrc echo "PKGNAME=${PKGNAME}" >> ${BUILDROOT}/.installrc @@ -109,8 +154,17 @@ 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 'if [[ ! -z \${CURSPLITPACKAGES} ]]' >> ${BUILDROOT}/.installrc +echo 'then' >> ${BUILDROOT}/.installrc + echo 'for package in \${CURSPLITPACKAGES}' >> ${BUILDROOT}/.installrc + echo 'do' >> ${BUILDROOT}/.installrc + echo '/sbin/mage install \${package} || exit 1' >> ${BUILDROOT}/.installrc + echo 'mv /var/cache/mage/packages/\${package}-${CURPVER}-${CURARCH}-${CURPBUILD}.mpk /BUILDED' >> ${BUILDROOT}/.installrc + echo 'done' >> ${BUILDROOT}/.installrc +echo 'else' >> ${BUILDROOT}/.installrc + echo '/sbin/mage install ${CURPNAME} || exit 1' >> ${BUILDROOT}/.installrc + echo 'mv /var/cache/mage/packages/${PKGNAME} /BUILDED' >> ${BUILDROOT}/.installrc +echo 'fi' >> ${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 @@ -118,12 +172,42 @@ sudo -H /sbin/chroot ${BUILDROOT} /bin/bash /.installrc sudo rm ${BUILDROOT}/.installrc -if [[ -f ${BUILDROOT}/BUILDED/${PKGNAME} ]] +if [[ ! -z ${CURSPLITPACKAGES} ]] then - scp ${BUILDROOT}/BUILDED/${PKGNAME} ${SSHLOGIN}/${CURARCH}/ + for package in ${CURSPLITPACKAGES} + do + # get pkgtyp + get_function_from_file split_info_${package} ${SMAGEFILE} + split_info_${package} + if [[ ${PKGTYPE} = virtual ]] + then + unset PKGTYPE + continue + fi + if [[ ${NOPKGBUILD} = true ]] + then + unset NOPKGBUILD + continue + fi + + pkgname="${package}-${CURPVER}-${CURARCH}-${CURPBUILD}.mpk" + + if [[ -f ${BUILDROOT}/BUILDED/${pkgname} ]] + then + scp ${BUILDROOT}/BUILDED/${pkgname} ${SSHLOGIN}/${CURARCH}/ + else + echo "Error: ${BUILDROOT}/BUILDED/${pkgname} missing!" + exit 1 + fi + done else - echo "Error: ${BUILDROOT}/BUILDED/${PKGNAME} missing!" - exit 1 + if [[ -f ${BUILDROOT}/BUILDED/${PKGNAME} ]] + then + scp ${BUILDROOT}/BUILDED/${PKGNAME} ${SSHLOGIN}/${CURARCH}/ + else + echo "Error: ${BUILDROOT}/BUILDED/${PKGNAME} missing!" + exit 1 + fi fi if [[ -f ${BUILDROOT}/BUILDED/sources/${SRCPKGNAME} ]] @@ -131,9 +215,13 @@ scp ${BUILDROOT}/BUILDED/sources/${SRCPKGNAME} ${SSHLOGIN}/src/ else echo "Error: ${BUILDROOT}/BUILDED/${SRCPKGNAME} missing!" - exit 1 +# exit 1 fi [[ -d /var/cache/mage/sources/${CURPNAME} ]] && rm -rf /var/cache/mage/sources/${CURPNAME} +# if we don't break before; all things are right - regardless if $? is not zero +# because some things like src-pkg creation may be disabled +exit 0 +