| 1 | function backup_data() { |
| 2 | BACKUPDIR="$1" |
| 3 | echo "backing up data in $BACKUPDIR" |
| 4 | |
| 5 | |
| 6 | if [ -d $BACKUPDIR ]; then |
| 7 | if [ $(/bin/ls -A $BACKUPDIR) ]; then |
| 8 | echo "$BACKUPDIR is not empty. Cannot continue" |
| 9 | exit |
| 10 | else |
| 11 | echo "$BACKUPDIR is ok. Continuing!" |
| 12 | fi |
| 13 | else |
| 14 | # BACKUPDIR doesn't exists |
| 15 | echo "$BACKUPDIR doesn't exists" |
| 16 | read -r -p "Do you want me to create it for you? (y/N) " ANSWER |
| 17 | case $ANSWER in |
| 18 | y|Y ) |
| 19 | mkdir -p $BACKUPDIR |
| 20 | ;; |
| 21 | * ) |
| 22 | echo "No changes made. Exiting" |
| 23 | exit |
| 24 | ;; |
| 25 | esac |
| 26 | fi |
| 27 | # ok, we have a backup directory |
| 28 | if [ -r $RCFILE ]; then |
| 29 | BCKUP_COMM=$(rsync -avz --progress ${RCFILE}* ${BASEDIR}/ ${BACKUPDIR}) |
| 30 | else |
| 31 | BCKUP_COMM=$(rsync -avz --progress ${BASEDIR}/ ${BACKUPDIR}) |
| 32 | fi |
| 33 | # run the command |
| 34 | if [ "$BCKUP_COMM" ]; then |
| 35 | echo -e "All files backed up." |
| 36 | echo -e "BACKUP directory:\t$BACKUPDIR" |
| 37 | tree $BACKUPDIR | $PAGER |
| 38 | echo; echo "BACKUP COMPLETED" |
| 39 | fi |
| 40 | } |
| 41 | |
| 42 | function backup_restore() { |
| 43 | BACKUPDIR="$1" |
| 44 | echo "restoring backup from $BACKUPDIR" |
| 45 | echo "This will overwrite all your notes and configurations with the backup." |
| 46 | read -r -p "Do you want to continue? (y/N) " ANSWER |
| 47 | case $ANSWER in |
| 48 | y|Y ) |
| 49 | # restoring rc file |
| 50 | BACKUPRC=$(basename $RCFILE) |
| 51 | if [ -r ${BACKUPDIR}/${BACKUPRC} ]; then |
| 52 | if [ -r ${RCFILE} ]; then |
| 53 | echo "Backing up current '${RCFILE}'...." |
| 54 | mv -f ${RCFILE} ${RCFILE}.$(date +%Y%m%d_%H%M) |
| 55 | fi |
| 56 | cp --verbose ${BACKUPDIR}/${BACKUPRC} $RCFILE |
| 57 | fi |
| 58 | # restoring notes directory |
| 59 | if [ -d $BACKUPDIR/notes ]; then |
| 60 | if [ $(/bin/ls -A $NOTESDIR) ]; then |
| 61 | rm --verbose $NOTESDIR/* |
| 62 | fi |
| 63 | cp -r --verbose $BACKUPDIR/notes $BASEDIR |
| 64 | fi |
| 65 | # restoring database |
| 66 | BACKUPDB=$(basename $DB) |
| 67 | if [ -f ${BACKUPDIR}/${BACKUPDB} ]; then |
| 68 | if [ -r ${DB} ]; then |
| 69 | echo "Backing up current '${DB}'...." |
| 70 | mv -f ${DB} ${DB}.$(date +%Y%m%d_%H%M) |
| 71 | fi |
| 72 | cp --verbose ${BACKUPDIR}/${BACKUPDB} $DB |
| 73 | fi |
| 74 | # restoring git repo subdirectory |
| 75 | if [ -d $BACKUPDIR/.git ]; then |
| 76 | if [ /bin/ls -A ${BASEDIR}/.git ]; then |
| 77 | rm -rf ${BASEDIR}/.git |
| 78 | fi |
| 79 | cp -r --verbose ${BACKUPDIR}/.git ${BASEDIR}/ |
| 80 | fi |
| 81 | ;; |
| 82 | * ) |
| 83 | echo "No changes made. Exiting" |
| 84 | exit |
| 85 | ;; |
| 86 | esac |
| 87 | } |
| 88 | |