aboutsummaryrefslogtreecommitdiff
path: root/share/hydractl/backup-restore-gitosis
diff options
context:
space:
mode:
Diffstat (limited to 'share/hydractl/backup-restore-gitosis')
-rwxr-xr-xshare/hydractl/backup-restore-gitosis45
1 files changed, 39 insertions, 6 deletions
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