From e6a937e5418fabd7e9b6db896a42eb7b4240ba5f Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@robotics.uk.to>
Date: Fri, 8 Jul 2016 23:01:37 +0100
Subject: [PATCH] Move local restore of gogs to app script

---
 src/freedombone-app-gogs      | 98 +++++++++++++++++++++++++++++++----
 src/freedombone-restore-local | 57 +-------------------
 2 files changed, 88 insertions(+), 67 deletions(-)

diff --git a/src/freedombone-app-gogs b/src/freedombone-app-gogs
index 7eddbe41e..ad6d25228 100755
--- a/src/freedombone-app-gogs
+++ b/src/freedombone-app-gogs
@@ -50,21 +50,93 @@ function upgrade_gogs {
 }
 
 function backup_local_gogs {
-	if grep -q "Gogs domain" $COMPLETION_FILE; then
-		if [ -d /home/git/gogs-repositories ]; then
-			GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Gogs domain" | awk -F ':' '{print $2}')
+	if ! grep -q "Gogs domain" $COMPLETION_FILE; then
+		return
+	fi
+
+	if [ ! -d /home/git/gogs-repositories ]; then
+		return
+	fi
+
+	GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Gogs domain" | awk -F ':' '{print $2}')
+
+	echo $"Backing up gogs"
+
+	function_check backup_database_to_usb
+	backup_database_to_usb gogs
 
-			echo $"Backing up gogs"
+	function_check backup_directory_to_usb
+	backup_directory_to_usb $GOPATH/src/github.com/gogits/gogs/custom gogs
+	backup_directory_to_usb /home/git/gogs-repositories gogsrepos
+	backup_directory_to_usb /home/git/.ssh gogsssh
 
-			function_check backup_database_to_usb
-			backup_database_to_usb gogs
+	echo $"Gogs backup complete"
+}
 
-			function_check backup_directory_to_usb
-			backup_directory_to_usb $GOPATH/src/github.com/gogits/gogs/custom gogs
-			backup_directory_to_usb /home/git/gogs-repositories gogsrepos
-			backup_directory_to_usb /home/git/.ssh gogsssh
+function restore_local_gogs {
+	if ! grep -q "Gogs domain" $COMPLETION_FILE; then
+		return
+	fi
+	if [ ! -d /home/git/gogs-repositories ]; then
+		return
+	fi
 
-			echo $"Gogs backup complete"
+	GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Gogs domain" | awk -F ':' '{print $2}')
+
+	export GVM_ROOT=$GVM_HOME
+	if [ -d $GVM_ROOT/bin ]; then
+		cd $GVM_ROOT/bin
+		[[ -s "$GVM_ROOT/scripts/gvm" ]] && source "$GVM_ROOT/scripts/gvm"
+		gvm use go${GO_VERSION} --default
+		systemctl set-environment GOPATH=$GOPATH
+	fi
+
+	if [ ${#GIT_DOMAIN_NAME} -gt 2 ]; then
+		function_check restore_database
+		restore_database gogs ${GIT_DOMAIN_NAME}
+		temp_restore_dir=/root/tempgogs
+		if [ -d $USB_MOUNT/backup/gogs ]; then
+			echo $"Restoring Gogs settings"
+			if [ ! -d $GOPATH/src/github.com/gogits/gogs/custom ]; then
+				mkdir -p $GOPATH/src/github.com/gogits/gogs/custom
+			fi
+			cp -r ${temp_restore_dir}/$GOPATH/src/github.com/gogits/gogs/custom/* $GOPATH/src/github.com/gogits/gogs/custom
+			if [ ! "$?" = "0" ]; then
+				function_check set_user_permissions
+				set_user_permissions
+				function_check backup_unmount_drive
+				backup_unmount_drive
+				exit 981
+			fi
+			echo $"Restoring Gogs repos"
+			function_check restore_directory_from_usb
+			restore_directory_from_usb ${temp_restore_dir}repos gogsrepos
+			cp -r ${temp_restore_dir}repos/home/git/gogs-repositories/* /home/git/gogs-repositories/
+			if [ ! "$?" = "0" ]; then
+				function_check set_user_permissions
+				set_user_permissions
+				function_check backup_unmount_drive
+				backup_unmount_drive
+				exit 67574
+			fi
+			echo $"Restoring Gogs authorized_keys"
+			function_check restore_directory_from_usb
+			restore_directory_from_usb ${temp_restore_dir}ssh gogsssh
+			if [ ! -d /home/git/.ssh ]; then
+				mkdir /home/git/.ssh
+			fi
+			cp -r ${temp_restore_dir}ssh/home/git/.ssh/* /home/git/.ssh/
+			if [ ! "$?" = "0" ]; then
+				function_check set_user_permissions
+				set_user_permissions
+				function_check backup_unmount_drive
+				backup_unmount_drive
+				exit 8463
+			fi
+			rm -rf ${temp_restore_dir}
+			rm -rf ${temp_restore_dir}repos
+			rm -rf ${temp_restore_dir}ssh
+			chown -R git:git /home/git
 		fi
 	fi
 }
@@ -73,6 +145,10 @@ function backup_remote_gogs {
 	echo -n ''
 }
 
+function restore_remote_gogs {
+	echo -n ''
+}
+
 function remove_gogs {
 	if ! grep -Fxq "install_gogs" $COMPLETION_FILE; then
 		return
diff --git a/src/freedombone-restore-local b/src/freedombone-restore-local
index 4e8b5b350..47d4ab1f7 100755
--- a/src/freedombone-restore-local
+++ b/src/freedombone-restore-local
@@ -38,7 +38,7 @@ RESTORE_APP='all'
 export TEXTDOMAIN=${PROJECT_NAME}-restore-local
 export TEXTDOMAINDIR="/usr/share/locale"
 
-# include utils which allow function_check and drive mount
+# include utils which allow function_check, go and drive mount
 UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
 for f in $UTILS_FILES
 do
@@ -980,60 +980,6 @@ function restore_mediagoblin {
     fi
 }
 
-function restore_gogs {
-    export GVM_ROOT=$GVM_HOME
-    if [ -d $GVM_ROOT/bin ]; then
-        cd $GVM_ROOT/bin
-        [[ -s "$GVM_ROOT/scripts/gvm" ]] && source "$GVM_ROOT/scripts/gvm"
-        gvm use go${GO_VERSION} --default
-        systemctl set-environment GOPATH=$GOPATH
-    fi
-
-    if [[ $RESTORE_APP != 'all' ]]; then
-        if [[ $RESTORE_APP != 'gogs' ]]; then
-            return
-        fi
-    fi
-    if [ ${#GIT_DOMAIN_NAME} -gt 2 ]; then
-        restore_database gogs ${GIT_DOMAIN_NAME}
-        if [ -d $USB_MOUNT/backup/gogs ]; then
-            echo $"Restoring Gogs settings"
-            if [ ! -d $GOPATH/src/github.com/gogits/gogs/custom ]; then
-                mkdir -p $GOPATH/src/github.com/gogits/gogs/custom
-            fi
-            cp -r /root/tempgogs/$GOPATH/src/github.com/gogits/gogs/custom/* $GOPATH/src/github.com/gogits/gogs/custom
-            if [ ! "$?" = "0" ]; then
-                set_user_permissions
-                backup_unmount_drive
-                exit 981
-            fi
-            echo $"Restoring Gogs repos"
-            restore_directory_from_usb /root/tempgogsrepos gogsrepos
-            cp -r /root/tempgogsrepos/home/git/gogs-repositories/* /home/git/gogs-repositories/
-            if [ ! "$?" = "0" ]; then
-                set_user_permissions
-                backup_unmount_drive
-                exit 67574
-            fi
-            echo $"Restoring Gogs authorized_keys"
-            restore_directory_from_usb /root/tempgogsssh gogsssh
-            if [ ! -d /home/git/.ssh ]; then
-                mkdir /home/git/.ssh
-            fi
-            cp -r /root/tempgogsssh/home/git/.ssh/* /home/git/.ssh/
-            if [ ! "$?" = "0" ]; then
-                set_user_permissions
-                backup_unmount_drive
-                exit 8463
-            fi
-            rm -rf /root/tempgogs
-            rm -rf /root/tempgogsrepos
-            rm -rf /root/tempgogsssh
-            chown -R git:git /home/git
-        fi
-    fi
-}
-
 function restore_email {
     if [[ $RESTORE_APP != 'all' ]]; then
         if [[ $RESTORE_APP != 'email' ]]; then
@@ -1128,7 +1074,6 @@ restore_hubzilla
 restore_rss
 restore_syncthing
 restore_mediagoblin
-restore_gogs
 
 restore_email
 restore_apps
-- 
GitLab