diff options
| author | danix <danix@danix.xyz> | 2023-04-03 18:42:43 +0200 |
|---|---|---|
| committer | danix <danix@danix.xyz> | 2023-04-03 18:42:43 +0200 |
| commit | 9eb02251c45d2b0d312b2c40f65f2f926bfb9a34 (patch) | |
| tree | 4810195ee8747da09872369ae5b5443cb813e26e | |
| parent | 07d42c7a11d817e19c4fb81dcdd1ae97ede991e8 (diff) | |
| download | bash-notes-9eb02251c45d2b0d312b2c40f65f2f926bfb9a34.tar.gz bash-notes-9eb02251c45d2b0d312b2c40f65f2f926bfb9a34.zip | |
working on the backup and backup restore functionalities.
| -rw-r--r-- | SOURCE/CORE/core-backup.sh | 44 | ||||
| -rw-r--r-- | SOURCE/CORE/helpers.sh | 25 | ||||
| -rw-r--r-- | SOURCE/head.sh | 1 | ||||
| -rw-r--r-- | SOURCE/main.sh | 13 | ||||
| -rwxr-xr-x | notes.sh | 80 |
5 files changed, 140 insertions, 23 deletions
diff --git a/SOURCE/CORE/core-backup.sh b/SOURCE/CORE/core-backup.sh new file mode 100644 index 0000000..38569ab --- /dev/null +++ b/SOURCE/CORE/core-backup.sh @@ -0,0 +1,44 @@ +function backup_data() { + BACKUPDIR="$1" + echo "backing up data in $BACKUPDIR" + + + if [ -d $BACKUPDIR ]; then + if [ $(/bin/ls -A $BACKUPDIR) ]; then + echo "$BACKUPDIR is not empty. Cannot continue" + exit + else + echo "$BACKUPDIR is ok. Continuing!" + fi + else + # BACKUPDIR doesn't exists + echo "$BACKUPDIR doesn't exists" + read -r -p "Do you want me to create it for you? (y/N) " ANSWER + case $ANSWER in + y|Y ) + mkdir -p $BACKUPDIR + ;; + * ) + echo "No changes made. Exiting" + exit + ;; + esac + fi + # ok, we have a backup directory + if [ -r $RCFILE ]; then + BCKUP_COMM=$(rsync -avz --progress ${RCFILE} ${BASEDIR}/* ${BACKUPDIR}) + else + BCKUP_COMM=$(rsync -avz --progress ${BASEDIR}/* ${BACKUPDIR}) + fi + # run the command + if [ "$BCKUP_COMM" ]; then + echo -e "BASE directory:\t\t$BASEDIR" + echo -e "BACKUP directory:\t$BACKUPDIR" + echo; echo "BACKUP COMPLETED" + fi +} + +function backup_restore() { + echo "restoring backup" +} + diff --git a/SOURCE/CORE/helpers.sh b/SOURCE/CORE/helpers.sh index a8f0981..8ff0e3c 100644 --- a/SOURCE/CORE/helpers.sh +++ b/SOURCE/CORE/helpers.sh @@ -27,20 +27,23 @@ debug file: /tmp/debug_bash-note.log text editor: ${EDITOR} terminal: ${TERMINAL} jq executable: ${JQ} +PAGER: ${PAGER} __NOWCONF__ echo "" echo "${BASENAME} parameters are:" - echo " -h | --help : This help text" - echo " -p | --plain : Output is in plain text" - echo " (without this option the output is formatted)" - echo " (this option must precede all others)" - echo " -l | --list : List existing notes" - echo " -a | --add [\"<title>\"] : Add new note" - echo " -e | --edit [<note>] : Edit note" - echo " -d | --delete [<note> | all] : Delete single note or all notes at once" - echo " -s | --show [<note>] : Display note using your favourite PAGER" - echo " -v | --version : Print version" - echo " --userconf : Export User config file" + echo -e " -h | --help\t\t\t: This help text" + echo -e " -p | --plain\t\t\t: Output is in plain text" + echo -e "\t\t\t\t (without this option the output is formatted)" + echo -e "\t\t\t\t (this option must precede all others)" + echo -e " -l | --list\t\t\t: List existing notes" + echo -e " -a | --add [\"<title>\"]\t: Add new note" + echo -e " -e | --edit [<note>]\t\t: Edit note" + echo -e " -d | --delete [<note> | all] : Delete single note or all notes at once" + echo -e " -s | --show [<note>]\t\t: Display note using your favourite PAGER" + echo -e " -v | --version\t\t: Print version" + echo -e " --userconf\t\t\t: Export User config file" + echo -e " --backup [<dest>]\t\t: Backup your data in your destination folder" echo "" } + diff --git a/SOURCE/head.sh b/SOURCE/head.sh index d68d171..6278aa1 100644 --- a/SOURCE/head.sh +++ b/SOURCE/head.sh @@ -118,6 +118,7 @@ terminal: ${TERMINAL} jq executable: ${JQ} " + echo "Now I'll create the needed files and directories." read -r -p "Do you wish to continue? (y/N) " ANSWER case $ANSWER in y|Y ) diff --git a/SOURCE/main.sh b/SOURCE/main.sh index 94f696d..612200d 100644 --- a/SOURCE/main.sh +++ b/SOURCE/main.sh @@ -85,6 +85,19 @@ while true; do # shellcheck disable=SC2317 exit ;; + --backup ) + case "$2" in + '' ) + read -r -p "Backup Dir: " BDIR + ;; + * ) + BDIR=$2 + ;; + esac + shift 2 + backup_data $BDIR + exit + ;; -- ) shift break @@ -118,6 +118,7 @@ terminal: ${TERMINAL} jq executable: ${JQ} " + echo "Now I'll create the needed files and directories." read -r -p "Do you wish to continue? (y/N) " ANSWER case $ANSWER in y|Y ) @@ -174,23 +175,26 @@ debug file: /tmp/debug_bash-note.log text editor: ${EDITOR} terminal: ${TERMINAL} jq executable: ${JQ} +PAGER: ${PAGER} __NOWCONF__ echo "" echo "${BASENAME} parameters are:" - echo " -h | --help : This help text" - echo " -p | --plain : Output is in plain text" - echo " (without this option the output is formatted)" - echo " (this option must precede all others)" - echo " -l | --list : List existing notes" - echo " -a | --add [\"<title>\"] : Add new note" - echo " -e | --edit [<note>] : Edit note" - echo " -d | --delete [<note> | all] : Delete single note or all notes at once" - echo " -s | --show [<note>] : Display note using your favourite PAGER" - echo " -v | --version : Print version" - echo " --userconf : Export User config file" + echo -e " -h | --help\t\t\t: This help text" + echo -e " -p | --plain\t\t\t: Output is in plain text" + echo -e "\t\t\t\t (without this option the output is formatted)" + echo -e "\t\t\t\t (this option must precede all others)" + echo -e " -l | --list\t\t\t: List existing notes" + echo -e " -a | --add [\"<title>\"]\t: Add new note" + echo -e " -e | --edit [<note>]\t\t: Edit note" + echo -e " -d | --delete [<note> | all] : Delete single note or all notes at once" + echo -e " -s | --show [<note>]\t\t: Display note using your favourite PAGER" + echo -e " -v | --version\t\t: Print version" + echo -e " --userconf\t\t\t: Export User config file" + echo -e " --backup [<dest>]\t\t: Backup your data in your destination folder" echo "" } + function addnote() { # remove eventually existing temp DB file if [[ -f $TMPDB ]]; then @@ -214,6 +218,46 @@ function addnote() { # shellcheck disable=SC2086,SC2091 $(${TERMINAL} ${TERM_OPTS} ${EDITOR} ${NOTESDIR}/${NOW}) } +function backup_data() { + BACKUPDIR="$1" + echo "backing up data in $BACKUPDIR" + + + if [ -d $BACKUPDIR ]; then + if [ $(/bin/ls -A $BACKUPDIR) ]; then + echo "$BACKUPDIR is not empty. Cannot continue" + exit + else + echo "$BACKUPDIR is ok. Continuing!" + fi + else + # BACKUPDIR doesn't exists + echo "$BACKUPDIR doesn't exists" + read -r -p "Do you want me to create it for you? (y/N) " ANSWER + case $ANSWER in + y|Y ) + mkdir -p $BACKUPDIR + ;; + * ) + echo "No changes made. Exiting" + exit + ;; + esac + fi + # ok, we have a backup directory + if [ -r $RCFILE ]; then + BCKUP_COMM=$(rsync -avz --progress ${RCFILE} ${BASEDIR}/* ${BACKUPDIR}) + else + BCKUP_COMM=$(rsync -avz --progress ${BASEDIR}/* ${BACKUPDIR}) + fi + # run the command + if [ "$BCKUP_COMM" ]; then + echo -e "BASE directory:\t\t$BASEDIR" + echo -e "BACKUP directory:\t$BACKUPDIR" + echo; echo "BACKUP COMPLETED" + fi +} + function editnote() { NOTE=$1 # shellcheck disable=SC2155 @@ -236,7 +280,6 @@ function editnote() { echo "note not found" exit 1 fi - exit } function listnotes() { # [ $PLAIN == true ] && echo "output is plain text" || echo "output is colored" @@ -415,6 +458,19 @@ while true; do # shellcheck disable=SC2317 exit ;; + --backup ) + case "$2" in + '' ) + read -r -p "Backup Dir: " BDIR + ;; + * ) + BDIR=$2 + ;; + esac + shift 2 + backup_data $BDIR + exit + ;; -- ) shift break |
