From 954dc47d920759ceffca7006eaa1d8c0ba362e3d Mon Sep 17 00:00:00 2001 From: Llewellyn van der Merwe Date: Fri, 6 Mar 2020 14:42:27 +0200 Subject: [PATCH] Converted the text to sync websites. Added the getSyncDBs and getSyncFolders methods te setup the files needed. --- getdata.sh | 200 --------------------------------- readme.md | 27 +---- setdata.sh | 181 ------------------------------ sync.sh | 323 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 329 insertions(+), 402 deletions(-) delete mode 100755 getdata.sh delete mode 100755 setdata.sh create mode 100755 sync.sh diff --git a/getdata.sh b/getdata.sh deleted file mode 100755 index b1f926b..0000000 --- a/getdata.sh +++ /dev/null @@ -1,200 +0,0 @@ -#!/bin/bash -#/--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ -# -# @version 1.0.0 -# @build 16th Feb, 2020 -# @package setninal -# @author Llewellyn van der Merwe -# @copyright Copyright (C) 2020. All Rights Reserved -# @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html -# -#/-----------------------------------------------------------------------------------------------------------------------------/ - -############################ GLOBAL ########################## -ACTION="setdata" -OWNER="sentinel-mx" -NAME="client" -HOST="https://sentinel.our.mx/" -######### DUE TO NOT BEING ABLE TO INCLUDE DYNAMIC ########### - -#################### UPDATE TO YOUR NEEDS #################### -############################################################## -############## ########## -############## CONFIG ########## -############## ########## -############################################################## -REPOURL="https://raw.githubusercontent.com/${OWNER}/${NAME}/master/" -SENTINELSERVER="${HOST}/${ACTION}" - -############################################################## -############## ########## -############## MAIN ########## -############## ########## -############################################################## -function main () { - ## set time for this run - echoTweak "$ACTION on $Datetimenow" - echo "started" - # get this server IP - HOSTIP="$(dig +short myip.opendns.com @resolver1.opendns.com)" - ## make sure cron is set - setCron - ## get the local server key - getLocalKey - ## check access (set if not ready) - setAccessToken - ## get the data - getData - ## Work with the data - storeLocalData -} - -############################################################## -############## ########## -############## DEFAULTS ########## -############## ########## -############################################################## -Datetimenow=$(TZ=":ZULU" date +"%m/%d/%Y @ %R (UTC)" ) -CLIENTUSER=$(whoami) -CLIENTHOME=~/ -CLIENTSCRIPT="${REPOURL}$ACTION.sh" -CLIENTSERVERKEY='' -TRUE=1 -FALSE=0 -HOSTIP='' -THEIPS='' - -############################################################## -############## ########## -############## FUNCTIONS ########## -############## ########## -############################################################## - -# little repeater -function repeat () { - head -c $1 < /dev/zero | tr '\0' $2 -} - -# little echo tweak -function echoTweak () { - echoMessage="$1" - mainlen="$2" - characters="$3" - if [ $# -lt 2 ] - then - mainlen=60 - fi - if [ $# -lt 3 ] - then - characters='\056' - fi - chrlen="${#echoMessage}" - increaseBy=$((mainlen-chrlen)) - tweaked=$(repeat "$increaseBy" "$characters") - echo -n "$echoMessage$tweaked" -} - -# Set cronjob without removing existing -function setCron () { - if [ -f $CLIENTHOME/$ACTION.cron ]; then - echoTweak "Crontab already configured for updates..." - echo "Skipping" - else - echoTweak "Adding crontab entry for continued updates..." - # check if user crontab is set - currentCron=$(crontab -u $CLIENTUSER -l 2>/dev/null) - if [[ -z "${currentCron// }" ]]; then - currentCron="# SENTINEL crontab settings" - echo "$currentCron" > $CLIENTHOME/$ACTION.cron - else - echo "$currentCron" > $CLIENTHOME/$ACTION.cron - fi - # check if the MAILTO is already set - if [[ $currentCron != *"MAILTO"* ]]; then - echo "MAILTO=\"\"" >> $CLIENTHOME/$ACTION.cron - echo "" >> $CLIENTHOME/$ACTION.cron - fi - # check if the @reboot curl -s $CLIENTSCRIPT | sudo bash is already set - if [[ $currentCron != *"@reboot curl -s $CLIENTSCRIPT | bash"* ]]; then - echo "@reboot curl -s $CLIENTSCRIPT | bash" >> $CLIENTHOME/$ACTION.cron - fi - # check if the @reboot curl -s $CLIENTSCRIPT | sudo bash is already set - if [[ $currentCron != *"* * * * * curl -s $CLIENTSCRIPT | bash"* ]]; then - echo "* * * * * curl -s $CLIENTSCRIPT | bash" >> $CLIENTHOME/$ACTION.cron - fi - # set the user cron - crontab -u $CLIENTUSER $CLIENTHOME/$ACTION.cron - echo "Done" - fi -} - -function getKey () { - # simple basic random - echo $(tr -dc 'A-HJ-NP-Za-km-z2-9' < /dev/urandom | dd bs=128 count=1 status=none) -} - -function getLocalKey () { - # Set update key - if [ -f $CLIENTHOME/$ACTION.key ]; then - echoTweak "Update key already set!" - echo "continue" - else - echoTweak "Setting the update key..." - echo $(getKey) > $CLIENTHOME/$ACTION.key - echo "Done" - fi - - # Get update key - CLIENTSERVERKEY=$(<"$CLIENTHOME/$ACTION.key") -} - -function setAccessToken () { - # check if sentinel access was set - accessToke=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36" -H "SENTINEL-KEY: $CLIENTSERVERKEY" -H "SENTINEL-HOST-IP: $HOSTIP" --silent $SENTINELSERVER) - - if [[ "$accessToke" != "$TRUE" ]]; then - read -s -p "Please enter your SENTINEL access key: " sentinelAccessKey - echo "" - echoTweak "One moment while we set your access to the SENTINEL system..." - resultAccess=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36" -H "SENTINEL-TRUST: $sentinelAccessKey" -H "SENTINEL-KEY: $CLIENTSERVERKEY" -H "SENTINEL-HOST-IP: $HOSTIP" --silent $SENTINELSERVER) - if [[ "$resultAccess" != "$TRUE" ]]; then - echo "YOUR SENTINEL ACCESS KEY IS INCORRECT! >> $resultAccess" - exit 1 - fi - echo "Done" - else - echoTweak "Access granted to the SENTINEL system." - echo "Done" - fi -} - -function getData () { - # getting the station data - echoTweak "Getting the station data..." - THEDATA=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36" -H "SENTINEL-KEY: $CLIENTSERVERKEY" -H "SENTINEL-HOST-IP: $HOSTIP" -H "SENTINEL-GET: 1" --silent $SENTINELSERVER) - # the data - if [[ "$THEDATA" == "$FALSE" || ${#THEDATA} -lt 15 ]]; then - echo "No data FOUND! " - exit 1 - fi - echo "Done" -} - -function storeLocalData () { - # load data - readarray -t rows <<< "$THEDATA" - for rr in "${rows[@]}" ; do - row=( $rr ) - if [[ ${#row[@]} == 3 ]]; then - # start =>>> - echoTweak "This work needs to still be done...." - fi - done -} - -############################################################## -############## ########## -############## MAIN ########## -############## ########## -############################################################## -main diff --git a/readme.md b/readme.md index 6953e62..3d94320 100644 --- a/readme.md +++ b/readme.md @@ -1,27 +1,12 @@ -Sential client +Sync Websites ============ -This script will update the VDM system with a station data. To run this script, use the following command (as root): +This script will setup a sync between websites. To run this script, use the following command (as root): -*setdata* = set Station Data to VDM system -*gedata* = will return all details related to this watcher - -# to set Data: +# Run Sync: ``` -bash <(curl -s https://raw.githubusercontent.com/sentinel-mx/client/master/setdata.sh) +bash <(curl -s https://raw.githubusercontent.com/namibia/demo-sync/master/sync.sh) ``` This script performs the following actions: - * Adds random Host Key. - * Adds a cron entry to update this file on a scheduled basis. - * Adds the server IP to VDM system. - -# to get Data: -``` -bash <(curl -s https://raw.githubusercontent.com/sentinel-mx/client/master/getdata.sh) -``` - -This script performs the following actions: - - * Adds random Host Key. - * Adds a cron entry to update the data on a scheduled basis. - * Gets data of stations in the watchers scope. + * Adds a cron entry to update run this sync on a scheduled basis. + * Adds folder and database setup file to use in scheduled syncs diff --git a/setdata.sh b/setdata.sh deleted file mode 100755 index 6cf7fa2..0000000 --- a/setdata.sh +++ /dev/null @@ -1,181 +0,0 @@ -#!/bin/bash -#/--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ -# -# @version 1.0.0 -# @build 16th Feb, 2020 -# @package setninal -# @author Llewellyn van der Merwe -# @copyright Copyright (C) 2020. All Rights Reserved -# @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html -# -#/-----------------------------------------------------------------------------------------------------------------------------/ - -############################ GLOBAL ########################## -ACTION="setdata" -OWNER="sentinel-mx" -NAME="client" -HOST="https://sentinel.our.mx/" -######### DUE TONOT BEING ABLE TO INCLUDE DYNAMIC ########### - -#################### UPDATE TO YOUR NEEDS #################### -############################################################## -############## ########## -############## CONFIG ########## -############## ########## -############################################################## -REPOURL="https://raw.githubusercontent.com/${OWNER}/${NAME}/master/" -SENTINELSERVER="${HOST}/${ACTION}" - -############################################################## -############## ########## -############## MAIN ########## -############## ########## -############################################################## -function main () { - ## set time for this run - echoTweak "$ACTION on $Datetimenow" - echo "started" - ## make sure cron is set - setCron - ## get the local server key - getLocalKey - ## check access (set if not ready) - setAccessToken - ## update Data - setData -} - -############################################################## -############## ########## -############## DEFAULTS ########## -############## ########## -############################################################## -Datetimenow=$(TZ=":ZULU" date +"%m/%d/%Y @ %R (UTC)" ) -CLIENTUSER=$(whoami) -CLIENTHOME=~/ -CLIENTSCRIPT="${REPOURL}$ACTION.sh" -CLIENTSERVERKEY='' -TRUE=1 - -############################################################## -############## ########## -############## FUNCTIONS ########## -############## ########## -############################################################## - -# little repeater -function repeat () { - head -c $1 < /dev/zero | tr '\0' $2 -} - -# little echo tweak -function echoTweak () { - echoMessage="$1" - mainlen="$2" - characters="$3" - if [ $# -lt 2 ] - then - mainlen=60 - fi - if [ $# -lt 3 ] - then - characters='\056' - fi - chrlen="${#echoMessage}" - increaseBy=$((mainlen-chrlen)) - tweaked=$(repeat "$increaseBy" "$characters") - echo -n "$echoMessage$tweaked" -} - -# Set cronjob without removing existing -function setCron () { - if [ -f $CLIENTHOME/$ACTION.cron ]; then - echoTweak "Crontab already configured for updates..." - echo "Skipping" - else - echoTweak "Adding crontab entry for continued updates..." - # check if user crontab is set - currentCron=$(crontab -u $CLIENTUSER -l 2>/dev/null) - if [[ -z "${currentCron// }" ]]; then - currentCron="# SENTINEL crontab settings" - echo "$currentCron" > $CLIENTHOME/$ACTION.cron - else - echo "$currentCron" > $CLIENTHOME/$ACTION.cron - fi - # check if the MAILTO is already set - if [[ $currentCron != *"MAILTO"* ]]; then - echo "MAILTO=\"\"" >> $CLIENTHOME/$ACTION.cron - echo "" >> $CLIENTHOME/$ACTION.cron - fi - # check if the @reboot curl -s $CLIENTSCRIPT | sudo bash is already set - if [[ $currentCron != *"@reboot curl -s $CLIENTSCRIPT | bash"* ]]; then - echo "@reboot curl -s $CLIENTSCRIPT | bash" >> $CLIENTHOME/$ACTION.cron - fi - # check if the @reboot curl -s $CLIENTSCRIPT | sudo bash is already set - if [[ $currentCron != *"* * * * * curl -s $CLIENTSCRIPT | bash"* ]]; then - echo "* * * * * curl -s $CLIENTSCRIPT | bash" >> $CLIENTHOME/$ACTION.cron - fi - # set the user cron - crontab -u $CLIENTUSER $CLIENTHOME/$ACTION.cron - echo "Done" - fi -} - -function getKey () { - # simple basic random - echo $(tr -dc 'A-HJ-NP-Za-km-z2-9' < /dev/urandom | dd bs=128 count=1 status=none) -} - -function getLocalKey () { - # Set update key - if [ -f $CLIENTHOME/$ACTION.key ]; then - echoTweak "Update key already set!" - echo "continue" - else - echoTweak "Setting the update key..." - echo $(getKey) > $CLIENTHOME/$ACTION.key - echo "Done" - fi - - # Get update key - CLIENTSERVERKEY=$(<"$CLIENTHOME/$ACTION.key") -} - -function setAccessToken () { - # check if SENTINEL access was set - accessToke=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36" -H "SENTINEL-KEY: $CLIENTSERVERKEY" --silent $SENTINELSERVER) - - if [[ "$accessToke" != "$TRUE" ]]; then - read -s -p "Please enter your SENTINEL access key: " sentinelAccessKey - echo "" - echoTweak "One moment while we set your access to the SENTINEL system..." - resultAccess=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36" -H "SENTINEL-TRUST: $sentinelAccessKey" -H "SENTINEL-KEY: $CLIENTSERVERKEY" --silent $SENTINELSERVER) - if [[ "$resultAccess" != "$TRUE" ]]; then - echo "YOUR SENTINEL ACCESS KEY IS INCORRECT! >> $resultAccess" - exit 1 - fi - echo "Done" - else - echo "Access granted to the SENTINEL system." - fi -} - -function setData () { - # get this station data (TODO we just do the IP for now) - IPNOW="$(dig +short myip.opendns.com @resolver1.opendns.com)" - # store the IP in the HOSTNAME file - echoTweak "Sending data..." - resultUpdate=$(curl -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36" -H "SENTINEL-KEY: $CLIENTSERVERKEY" -H "SENTINEL-DATA: $IPNOW" --silent $SENTINELSERVER) - if [[ "$resultUpdate" != "$TRUE" ]]; then - echo "YOUR SERVER KEY IS INCORRECT! >> $resultUpdate" - exit 1 - fi - echo "Done" -} - -############################################################## -############## ########## -############## MAIN ########## -############## ########## -############################################################## -main diff --git a/sync.sh b/sync.sh new file mode 100755 index 0000000..3fc36c8 --- /dev/null +++ b/sync.sh @@ -0,0 +1,323 @@ +#!/bin/bash +#/--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ +# +# @version 1.0.0 +# @build 6th Marh, 2020 +# @package sync websites +# @author Llewellyn van der Merwe +# @copyright Copyright (C) 2020. All Rights Reserved +# @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html +# +#/-----------------------------------------------------------------------------------------------------------------------------/ + +############################ GLOBAL ########################## +ACTION="sync" +OWNER="namibia" +REPONAME="demo-sync" +######### DUE TONOT BEING ABLE TO INCLUDE DYNAMIC ########### + +#################### UPDATE TO YOUR NEEDS #################### +############################################################## +############## ########## +############## CONFIG ########## +############## ########## +############################################################## +REPOURL="https://raw.githubusercontent.com/${OWNER}/${REPONAME}/master/" + +############################################################## +############## ########## +############## DEFAULTS ########## +############## ########## +############################################################## +Datetimenow=$(TZ=":ZULU" date +"%m/%d/%Y @ %R (UTC)" ) +SCRIPTURL="${REPOURL}$ACTION.sh" +HOMEPATH=~/ +NAME=".${ACTION}_${OWNER}" +# set paths +BASEPATH="${HOMEPATH}/.${NAME}" +FOLDERPATH="${BASEPATH}_folders" +DBPATH="${BASEPATH}_dbs" +CRONPATH="${BASEPATH}.cron" + +############################################################## +############## ########## +############## MAIN ########## +############## ########## +############################################################## +function main () { + ## set time for this run + echoTweak "$ACTION on $Datetimenow" + echo "started" + ## make sure cron is set + setCron + ## check if sync databases are setup + runSetup 1 "${DBPATH}" + ## check if sync folders are setup + runSetup 2 "${FOLDERPATH}" +} + +############################################################## +############## ########## +############## FUNCTIONS ########## +############## ########## +############################################################## + +# little repeater +function repeat () { + head -c $1 < /dev/zero | tr '\0' $2 +} + +# little echo tweak +function echoTweak () { + echoMessage="$1" + mainlen="$2" + characters="$3" + if [ $# -lt 2 ] + then + mainlen=60 + fi + if [ $# -lt 3 ] + then + characters='\056' + fi + chrlen="${#echoMessage}" + increaseBy=$((mainlen-chrlen)) + tweaked=$(repeat "$increaseBy" "$characters") + echo -n "$echoMessage$tweaked" +} + +# Set cronjob without removing existing +function setCron () { + if [ -f "${CRONPATH}" ]; then + echoTweak "Crontab already configured for updates..." + echo "Skipping" + else + echoTweak "Adding crontab entry for continued updates..." + # check if user crontab is set + currentCron=$(crontab -u $CLIENTUSER -l 2>/dev/null) + if [[ -z "${currentCron// }" ]]; then + currentCron="# SENTINEL crontab settings" + echo "$currentCron" > "${CRONPATH}" + else + echo "$currentCron" > "${CRONPATH}" + fi + # check if the MAILTO is already set + if [[ $currentCron != *"MAILTO"* ]]; then + echo "MAILTO=\"\"" >> "${CRONPATH}" + echo "" >> "${CRONPATH}" + fi + # check if the @reboot curl -s $SCRIPTURL | sudo bash is already set + if [[ $currentCron != *"0 4 * * * curl -s $SCRIPTURL | bash"* ]]; then + echo "0 4 * * * curl -s $SCRIPTURL | bash" >> "${CRONPATH}" + fi + # set the user cron + crontab -u $CLIENTUSER "${CRONPATH}" + echo "Done" + fi +} + +### run the sync websites method ### +function syncWebsites () { + echo -ne "\n soon..................\n" +} + +### setup sync databases file ### +function getSyncDBs () { + # start building the database details + echo "# SOURCE_DBSERVER SOURCE_DATABASE SOURCE_USER SOURCE_PASS TARGET_DBSERVER TARGET_DATABASE TARGET_USER TARGET_PASS" > "$1" + # default it no to run setup + GETTING=0 + echo "" + echo -ne "\n Would you like to add a set of sync databases? [y/N]: " + read -r answer + if [[ $answer == "y" ]]; then + # start Database tutorial + echo -ne "\n RUNNING DATABASE SETUP\n" + # set checker to get more + GETTING=1 + fi + # start setup + while [ "$GETTING" -eq "1" ] + do + # get the Source Database IP/Domain + echo -ne "\n Set the Source Database IP/Domain\n" + read -e -p " # Example (127.0.0.1 | localhost): " -i "127.0.0.1" INPUT_SOURCE_DBSERVER + # check that we have a string + if [ ! ${#INPUT_SOURCE_DBSERVER} -ge 2 ]; then + echo -ne "\n YOU MUST ADD A SOURCE DATABASE IP/DOMAIN!\n\n" ; + # remove the file + rm "$1" + # start again + exit 1 + fi + # get the Source Database Name + echo -ne "\n Set the Source Database Name\n" + echo -ne " # Example (database_name): " + read -r INPUT_SOURCE_DATABASE + # check that we have a string + if [ ! ${#INPUT_SOURCE_DATABASE} -ge 2 ]; then + echo -ne "\n YOU MUST ADD A SOURCE DATABASE NAME!\n\n" ; + # remove the file + rm "$1" + # start again + exit 1 + fi + # get the Source Database User Name + echo -ne "\n Set the Source Database User Name\n" + echo -ne " # Example (database_user): " + read -r INPUT_SOURCE_USER + # check that we have a string + if [ ! ${#INPUT_SOURCE_USER} -ge 2 ]; then + echo -ne "\n YOU MUST ADD A SOURCE DATABASE USER NAME!\n\n" ; + # remove the file + rm "$1" + # start again + exit 1 + fi + # get the Source Database User Password + echo -ne "\n Set the Source Database User Password\n" + echo -ne " # Example (realy..): " + read -s INPUT_SOURCE_PASSWORD + # check that we have a string + if [ ! ${#INPUT_SOURCE_PASSWORD} -ge 2 ]; then + echo -ne "\n YOU MUST ADD A SOURCE DATABASE USER PASSWORD!\n\n" ; + # remove the file + rm "$1" + # start again + exit 1 + fi + # get the Target Database IP/Domain + echo -ne "\n Set the Target Database IP/Domain\n" + read -e -p " # Example (127.0.0.1 | localhost): " -i "127.0.0.1" INPUT_TARGET_DBSERVER + # check that we have a string + if [ ! ${#INPUT_TARGET_DBSERVER} -ge 2 ]; then + echo -ne "\n YOU MUST ADD A TARGET DATABASE IP/DOMAIN!\n\n" ; + # remove the file + rm "$1" + # start again + exit 1 + fi + # get the Target Database Name + echo -ne "\n Set the Target Database Name\n" + echo -ne " # Example (database_name): " + read -r INPUT_TARGET_DATABASE + # check that we have a string + if [ ! ${#INPUT_TARGET_DATABASE} -ge 2 ]; then + echo -ne "\n YOU MUST ADD A TARGET DATABASE NAME!\n\n" ; + # remove the file + rm "$1" + # start again + exit 1 + fi + # get the Target Database User Name + echo -ne "\n Set the Target Database User Name\n" + echo -ne " # Example (database_user): " + read -r INPUT_TARGET_USER + # check that we have a string + if [ ! ${#INPUT_TARGET_USER} -ge 2 ]; then + echo -ne "\n YOU MUST ADD A TARGET DATABASE USER NAME!\n\n" ; + # remove the file + rm "$1" + # start again + exit 1 + fi + # get the Target Database User Password + echo -ne "\n Set the Target Database User Password\n" + echo -ne " # Example (realy..): " + read -s INPUT_TARGET_PASSWORD + # check that we have a string + if [ ! ${#INPUT_TARGET_PASSWORD} -ge 2 ]; then + echo -ne "\n YOU MUST ADD A TARGET DATABASE USER PASSWORD!\n\n" ; + # remove the file + rm "$1" + # start again + exit 1 + fi + # add to the file + echo "${INPUT_SOURCE_DBSERVER} ${INPUT_SOURCE_DATABASE} ${INPUT_SOURCE_USER} ${INPUT_SOURCE_PASSWORD} ${INPUT_TARGET_DBSERVER} ${INPUT_TARGET_DATABASE} ${INPUT_TARGET_USER} ${INPUT_TARGET_PASSWORD}" >> "$1" + # check if another should be added + echo "" + echo -ne "\n Would you like to add another set of sync databases? [y/N]: " + read -r answer + if [[ $answer != "y" ]]; then + # end the loop + GETTING=0 + fi + done +} + +### setup sync folders file ### +function getSyncFolders () { + # start building the website folder details + echo "# SOURCE_PATH TARGET_PATH" > "$1" + # default it no to run setup + GETTING=0 + echo "" + echo -ne "\n Would you like to add a set of sync folders? [y/N]: " + read -r answer + if [[ $answer == "y" ]]; then + # start Folder tutorial + echo -ne "\n RUNNING FOLDER SETUP\n" + # set checker to get more + GETTING=1 + fi + # start setup + while [ "$GETTING" -eq "1" ] + do + # get source folder path path + echo -ne "\n Set the Source Folder Path\n" + echo -ne " # Example (/home/username_a/): " + read -r INPUT_SOURCE_PATH + # check that we have a source path + if [ ! -d "$INPUT_SOURCE_PATH" ]; then + echo -ne "\n YOU MUST ADD A SOURCE PATH!\n\n" ; + # remove the file + rm "$1" + # start again + exit 1 + fi + # get target folder path path + echo -ne "\n Set the Target Folder Path\n" + echo -ne " # Example (/home/username_b/): " + read -r INPUT_TARGET_PATH + # check that we have a target path + if [ ! -d "$INPUT_TARGET_PATH" ]; then + echo -ne "\n YOU MUST ADD A TARGET PATH!\n\n" ; + # remove the file + rm "$1" + # start again + exit 1 + fi + # add to the file + echo "${INPUT_SOURCE_PATH} ${INPUT_TARGET_PATH}" >> "$1" + # check if another should be added + echo "" + echo -ne "\n Would you like to add another set of sync folders? [y/N]: " + read -r answer + if [[ $answer != "y" ]]; then + # end the loop + GETTING=0 + fi + done +} + +### MAIN SETUP ### +function runSetup () { + # check if already set + if [ ! -f "$2" ]; then + # if setup database + if [ "$1" -eq "1" ]; then + getSyncDBs "$2" + # if setup folders + elif [ "$1" -eq "2" ]; then + getSyncFolders "$2" + fi + fi +} + +############################################################## +############## ########## +############## MAIN ########## +############## ########## +############################################################## +main