From 25c2c398bb8d147fc47bd92e48a005c848095a68 Mon Sep 17 00:00:00 2001 From: belliash Date: Wed, 1 Feb 2012 23:59:39 +0100 Subject: [PATCH] implement snapshotPortage() --- libraries/repositories | 53 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/libraries/repositories b/libraries/repositories index eb71e3f..ce4f579 100644 --- a/libraries/repositories +++ b/libraries/repositories @@ -314,3 +314,56 @@ function pushRepository() { esac return 1 } + +#------------------------------------------------------------------------------- +# Downloads Portage tree ready t ouse at production and creates a snapshot +# Parameters: %address% %protocol% +#------------------------------------------------------------------------------- +function snapshotPortage() { + local SOURCE="${1}" + local TARBALL="portage-$(date +${TARBALLDATE}).tar.${TARBALLFORMAT}" + if [ ! -d ${SNAPSHOTSDIR} ]; then + makeDirectory ${SNAPSHOTSDIR} || return 1 + elif [ ! -f ${SNAPSHOTSDIR}/${TARBALL} ]; then + rm -rf "${TEMPDIR}/portage" + case ${2} in + [Gg][Ii][Tt]) + originGitPortage ${TEMPDIR}/portage ${SOURCE} || return 1 + ;; + [Rr][Ss][Yy][Nn][Cc]) + originRsyncPortage ${TEMPDIR}/portage ${SOURCE} || return 1 + ;; + *) + printWarn "Tried to pull data using unsupported protocol (${2})!" + return 1 + ;; + esac + TARBALL=${TARBALL%.*} + run "tar -c -C ${TEMPDIR} portage > ${SNAPSHOTSDIR}/${TARBALL}" + if [ ${?} -ne 0 ]; then + rm -f ${SNAPSHOTSDIR}/${TARBALL} + return 1 + fi + case ${TARBALLFORMAT} in + bz2) + if [ -e /usr/bin/pbzip2 ]; then + run "pbzip2 -p${MAXJOBS} ${SNAPSHOTSDIR}/${TARBALL}" + else + run "bzip2 ${SNAPSHOTSDIR}/${TARBALL}" + fi + ;; + gz) + run "gzip -9 ${SNAPSHOTSDIR}/${TARBALL}" + ;; + xz) + run "xz ${SNAPSHOTSDIR}/${TARBALL}" + ;; + esac + if [ ${?} -ne 0 ]; then + rm -f ${SNAPSHOTSDIR}/${TARBALL} + rm -f ${SNAPSHOTSDIR}/${TARBALL}.${TARBALLFORMAT} + return 1 + fi + fi + return 0 +}