Browse Source

Restore gogs from usb backup

Bob Mottram 10 years ago
parent
commit
b03a938f93
1 changed files with 39 additions and 0 deletions
  1. 39
    0
      src/freedombone

+ 39
- 0
src/freedombone View File

@@ -2547,6 +2547,45 @@ function create_restore_script {
2547 2547
       echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
2548 2548
   fi
2549 2549
 
2550
+  if grep -Fxq "install_gogs" $COMPLETION_FILE; then
2551
+      BACKUP_INCLUDES_WEBSITES="yes"
2552
+      echo "if [ -d $USB_MOUNT/backup/gogs ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
2553
+      echo '  echo "Restoring gogs database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
2554
+      echo '  if [ ! -d /root/tempgogsdata ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
2555
+      echo '    mkdir /root/tempgogsdata' >> /usr/bin/$RESTORE_SCRIPT_NAME
2556
+      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2557
+      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/gogsdata /root/tempgogsdata $USB_MOUNT/backup/gogsdata.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
2558
+      echo '  if [ ! -f /root/tempgogsdata/usb/backup/gogsdata/tempgogsdata/gogs.sql ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
2559
+      echo '    echo "Unable to restore Gogs database"' >> /usr/bin/$RESTORE_SCRIPT_NAME
2560
+      echo '    rm -rf /root/tempgogsdata' >> /usr/bin/$RESTORE_SCRIPT_NAME
2561
+      echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
2562
+      echo "    rm -rf $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
2563
+      echo '    exit 505' >> /usr/bin/$RESTORE_SCRIPT_NAME
2564
+      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2565
+      echo '  mysqlsuccess=$(mysql -u root --password=$DATABASE_PASSWORD gogs -o < /root/tempgogsdata/usb/backup/gogsdata/tempgogsdata/gogs.sql)' >> /usr/bin/$RESTORE_SCRIPT_NAME
2566
+      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
2567
+      echo '    echo "$mysqlsuccess"' >> /usr/bin/$RESTORE_SCRIPT_NAME
2568
+      echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
2569
+      echo "    rm -rf $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
2570
+      echo '    exit 965' >> /usr/bin/$RESTORE_SCRIPT_NAME
2571
+      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2572
+      echo '  echo "Restoring Gogs installation"' >> /usr/bin/$RESTORE_SCRIPT_NAME
2573
+      echo '  if [ ! -d /root/tempgogs ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
2574
+      echo '    mkdir /root/tempgogs' >> /usr/bin/$RESTORE_SCRIPT_NAME
2575
+      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2576
+      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/gogs /root/tempgogs $USB_MOUNT/backup/gogs.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
2577
+      echo "  cp -r /root/tempgogs/usb/backup/gogs/gocode/src/github.com/gogits/gogs/* /etc/gocode/src/github.com/gogits/gogs/" >> /usr/bin/$RESTORE_SCRIPT_NAME
2578
+      echo '  if [ ! "$?" = "0" ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
2579
+      echo "    umount $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
2580
+      echo "    rm -rf $USB_MOUNT" >> /usr/bin/$RESTORE_SCRIPT_NAME
2581
+      echo '    exit 981' >> /usr/bin/$RESTORE_SCRIPT_NAME
2582
+      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2583
+      echo '  rm -rf /root/tempgogs' >> /usr/bin/$RESTORE_SCRIPT_NAME
2584
+      echo '  rm -rf /root/tempgogsdata' >> /usr/bin/$RESTORE_SCRIPT_NAME
2585
+      echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
2586
+      echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
2587
+  fi
2588
+
2550 2589
   echo "if [ -d $USB_MOUNT/backup/wiki ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
2551 2590
   echo '  echo "Restoring Wiki installation"' >> /usr/bin/$RESTORE_SCRIPT_NAME
2552 2591
   echo '  mkdir /root/tempwiki' >> /usr/bin/$RESTORE_SCRIPT_NAME