summaryrefslogtreecommitdiff
path: root/share/hydractl
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2012-01-04 15:43:08 -0200
committerSilvio Rhatto <rhatto@riseup.net>2012-01-04 15:43:08 -0200
commit26cbb26cebd495fd6260b6af65b37fe5c8a8c00b (patch)
tree02f5dae382c02f04e87d37816e409252f26579a7 /share/hydractl
parentf360acf0fab1d941bc7de8bec3d22aabd64f49fe (diff)
downloadhydra-26cbb26cebd495fd6260b6af65b37fe5c8a8c00b.tar.gz
hydra-26cbb26cebd495fd6260b6af65b37fe5c8a8c00b.tar.bz2
Support for restoring backups from /var/backups/restore; svn and git restore support
Diffstat (limited to 'share/hydractl')
-rwxr-xr-xshare/hydractl/backup-restore10
-rwxr-xr-xshare/hydractl/backup-restore-gitosis45
-rwxr-xr-xshare/hydractl/backup-restore-site6
-rwxr-xr-xshare/hydractl/backup-restore-svn46
4 files changed, 90 insertions, 17 deletions
diff --git a/share/hydractl/backup-restore b/share/hydractl/backup-restore
index 160ed5e..a5bfd42 100755
--- a/share/hydractl/backup-restore
+++ b/share/hydractl/backup-restore
@@ -2,12 +2,16 @@
#
# Backup restoration.
#
-# TODO: optionally restore from local backup
-#
# Load.
source $APP_BASE/lib/hydra/functions || exit 1
hydra_config_load
-hydra_backup_environment_remote $*
+# Check restore strategy.
+if [ "$1" == "localhost" ]; then
+ hydra_backup_environment_local $2 restore
+else
+ hydra_backup_environment_remote $1 restore
+fi
+
duplicity restore file:///$BACKUPDIR/ $RESTOREDIR/
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
diff --git a/share/hydractl/backup-restore-site b/share/hydractl/backup-restore-site
index 4604755..ae8f87a 100755
--- a/share/hydractl/backup-restore-site
+++ b/share/hydractl/backup-restore-site
@@ -19,8 +19,10 @@ if [ -z "$SITE" ]; then
exit 1
fi
-# Check restore stratety.
-if [ "$1" == "localhost" ]; then
+# Check restore strategy.
+if [ "$1" == "backups" ]; then
+ hydra_backup_environment_local_website $2 restore
+elif [ "$1" == "localhost" ] || [ "$1" == "`facter hostname`" ]; then
hydra_backup_environment_local $2 restore
else
hydra_backup_environment_remote $1 restore
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/*