From ae2fb4c4827c61ac450f302714c5042b3c886609 Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Mon, 18 May 2020 08:34:04 +0000
Subject: [PATCH] Backups in array now for easier addition and removal of backends

---
 backup.sh |   76 ++++++++++++++++++++++++++++++-------
 1 files changed, 61 insertions(+), 15 deletions(-)

diff --git a/backup.sh b/backup.sh
index 21f8aea..546a867 100755
--- a/backup.sh
+++ b/backup.sh
@@ -1,9 +1,62 @@
 #!/bin/sh
 
+BACKUP_DIR="/backup/work/"
+FILES_DIR="/home/joel/OneDrive/"
+RCLONE_BACKUP=("OneDrive_Personal" "NextCloud" "GoogleDrive" "Mega" "unimelb" "sout" "pCloud")
+RCLONE_FILES=("sout" "Mega" "unimelb")
+
+function sync() {
+	if [ $2 != "p" ]; then
+		case $1 in
+			"sout")
+				rclone sync $BACKUP_DIR $1:/data/Cloud/backup $(! [ -z $3 ] && echo "-P")
+				;;
+			*)
+				rclone sync $BACKUP_DIR $1:/Uni/duplicacy  $(! [ -z $3 ] && echo "-P")
+				;;
+		esac
+	else
+		case $1 in
+			"sout")
+				rclone sync $FILES_DIR $1:/data/Cloud/files  $(! [ -z $3 ] && echo "-P")
+				;;
+			*)
+				rclone sync $FILES_DIR $1:/Uni/files  $(! [ -z $3 ] && echo "-P")
+				;;
+			esac
+	fi
+}
+
+function sync_all() {
+	if [ -z $1 ]; then
+		for i in ${RCLONE_BACKUP[*]}; do
+			sync $i &
+		done
+		for i in ${RCLONE_FILES[*]}; do
+			sync $i p &
+		done
+	else
+		for i in ${RCLONE_BACKUP[*]}; do
+			echo -e '\033[0;31m'$i backup'\033[0m'
+			sync $i n p
+		done
+		for i in ${RCLONE_FILES[*]}; do
+			echo '\033[0;31m'$i files'\033[0m'
+			sync $i p p
+		done
+	fi
+}
+
 cd /home/joel/OneDrive
 
+if [ "$1" = "sync" ]; then
+	echo -e '\033[0;32m'Syncing'\033[0m'
+	sync_all p
+	exit
+fi
+
 LAST="$(duplicacy list | tail -n1 | cut -d' '  -f4)"
-CURR="$(duplicacy backup | grep "revision [0-9] completed" | sed 's/[^0-9]//g')"
+CURR="$(duplicacy backup | tail -n1 | sed 's/[^0-9]//g')"
 #LAST=2
 #CURR=4
 DIFF="$(duplicacy diff -r $CURR -r $LAST | grep '-')"
@@ -12,18 +65,11 @@
 #echo "last - $LAST"
 #echo "diff - $DIFF"
 
-if [ -z "$DIFF" ]; then
-	duplicacy prune -r $CURR -exclusive
-else
-	echo "No diff to backup"
-fi
-duplicacy prune -keep 1:7 -keep 7:30 -exclusive
+duplicacy prune -keep 7:30 -keep 1:7 -exclusive > /dev/null 2>&1
 
-BACKUP_DIR="/backup/work/"
-rclone sync $BACKUP_DIR "OneDrive_Personal":/Uni &
-rclone sync $BACKUP_DIR "NextCloud":/Uni &
-rclone sync $BACKUP_DIR "GoogleDrive":/Uni &
-rclone sync $BACKUP_DIR "Mega":/Uni &
-rclone sync $BACKUP_DIR "unimelb":/ &
-rclone sync $BACKUP_DIR "sout":/data/Cloud &
-#rclone sync $BACKUP_DIR "Oracle":/Uni
+if [ -z "$DIFF" ]; then
+	duplicacy prune -r $CURR -exclusive > /dev/null 2>&1
+else
+	echo "New backup $CURR"
+	sync_all
+fi

--
Gitblit v1.9.3