aboutsummaryrefslogtreecommitdiff
path: root/share/hydractl/backup-restore-svn
diff options
context:
space:
mode:
Diffstat (limited to 'share/hydractl/backup-restore-svn')
-rwxr-xr-xshare/hydractl/backup-restore-svn46
1 files changed, 40 insertions, 6 deletions
diff --git a/share/hydractl/backup-restore-svn b/share/hydractl/backup-restore-svn
index e4b1660..2f15563 100755
--- a/share/hydractl/backup-restore-svn
+++ b/share/hydractl/backup-restore-svn
@@ -2,15 +2,49 @@
#
# Subversion 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/svn" ]; then
+ echo "SVN folder does not exist: $RESTOREDIR/var/svn"
+ exit 1
+fi
+
+# TODO: more like backup-site
+# Backup it.
+mkdir -p /var/site/backups/svn/
+mv /var/svn /var/site/backups/svn/$DATE
+
+# Set svn user.
+if hydra_check_user svn; then
+ $SVN_USER="svn"
+else
+ $SVN_USER="root"
+fi
+
+# Set svn group.
+if hydra_check_group svn; then
+ $SVN_GROUP="svn"
+else
+ $SVN_GROUP="root"
+fi
+
+# Copy site folder from backup.
+cp -a $RESTOREDIR/var/svn /var/svn
+
+# Fix permissions.
+chown root.root /var/svn
+chown -R $SVN_USER.$SVN_GROUP /var/svn/*