From 26cbb26cebd495fd6260b6af65b37fe5c8a8c00b Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Wed, 4 Jan 2012 15:43:08 -0200 Subject: Support for restoring backups from /var/backups/restore; svn and git restore support --- share/hydractl/backup-restore-gitosis | 45 ++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 6 deletions(-) (limited to 'share/hydractl/backup-restore-gitosis') diff --git a/share/hydractl/backup-restore-gitosis b/share/hydractl/backup-restore-gitosis index 7da4a05..f569a8e 100755 --- a/share/hydractl/backup-restore-gitosis +++ b/share/hydractl/backup-restore-gitosis @@ -2,15 +2,48 @@ # # Gitosis backup restoration. # -# TODO # Load. source $APP_BASE/lib/hydra/functions || exit 1 hydra_config_load -hydra_backup_environment_remote $* +# Parameters. +DATE="`date +%Y%m%d`" -# Check if folder exist on the backup -# Check if there's already a site folder and backup it -# Copy site folder from backup -# Fix permissions +# Check restore strategy. +if [ "$1" == "localhost" ] || [ "$1" == "`facter hostname`" ]; then + hydra_backup_environment_local $2 restore +else + hydra_backup_environment_remote $1 restore +fi + +# Check if folder exist on the backup. +if [ ! -d "$RESTOREDIR/var/git" ]; then + echo "Git folder does not exist: $RESTOREDIR/var/git" + exit 1 +fi + +# Set git user. +if hydra_check_user gitosis; then + $GIT_USER="gitosis" +else + $GIT_USER="root" +fi + +# Set git group. +if hydra_check_group gitosis; then + $GIT_GROUP="gitosis" +else + $GIT_GROUP="root" +fi + +# TODO: more like backup-site +# Backup it. +mkdir -p /var/site/backups/git/ +mv /var/git /var/site/backups/git/$DATE + +# Copy site folder from backup. +cp -a $RESTOREDIR/var/git /var/git + +# Fix permissions. +chown -R $GIT_USER.$GIT_GROUP /var/git -- cgit v1.2.3