diff options
Diffstat (limited to 'share/hydractl/backup-restore-svn')
-rwxr-xr-x | share/hydractl/backup-restore-svn | 46 |
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/* |