diff --git a/helium_helper.sh b/helium_helper.sh index 9632734..3705ac9 100755 --- a/helium_helper.sh +++ b/helium_helper.sh @@ -63,8 +63,7 @@ dependency_check () { done if [ -f "$TMP/missingDeps" ] ; then - MISSING=$(cat $TMP/missingDeps) - echo -e " ${RED}Following dependencies are missing :\n\n${CRS}$MISSING\n\n ${CYN}Please install and re-run script !${CRS}\n" + echo -e " ${RED}Following dependencies are missing :\n\n${CRS}$(cat $TMP/missingDeps)\n\n ${CYN}Please install and re-run script !${CRS}\n" exit_clean fi } @@ -265,11 +264,11 @@ update_application() { ### CHECK FOR EMPTY VERSION TAGS if [ -z "$APP_SOURCE_VERSION" ] ; then - echo -e "\n ${RED}Empty version tag from ${CYN}$APP_SOURCE${RED}! Can't compare, exiting...${CRS}" + echo -e "\n ${RED}Empty version tag from ${CYN}$APP_SOURCE${RED}! Can't compare, exiting...${CRS}\n" exit elif [ -z "$LOCAL_VERSION" ] ; then - echo -e "\n ${RED}Empty version tag from ${CYN}local AppImage${RED}! Can't compare, exiting...${CRS}" + echo -e "\n ${RED}Empty version tag from ${CYN}local AppImage${RED}! Can't compare, exiting...${CRS}\n" exit fi @@ -319,7 +318,7 @@ update_application() { ### BACKUP call_backup() { - if [ -f $BACKUP_PATH\/$APP_NAME\.$BACKUP_METHOD\.backup_* ] ; then + if [ $(ls $BACKUP_PATH\/$APP_NAME\.$BACKUP_METHOD\.backup_* | wc -l) -gt "1" ] ; then echo -e "\n ${CYN}A $BACKUP_METHOD backup already exists!${CRS}\n" while true ; do @@ -331,16 +330,18 @@ call_backup() { elif [[ "$OVERWRITE_BACKUP" == "y" || "$OVERWRITE_BACKUP" == "Y" ]] ; then echo -e "\n ${YEL}Overwriting backup...${CRS}" - rm $BACKUP_PATH/$APP_NAME.$BACKUP_METHOD.backup_* + rm -rf $BACKUP_PATH/$APP_NAME.$BACKUP_METHOD.backup_* + ${BACKUP_METHOD}_backup break else echo -e "\n ${YEL}Invalid response!${CRS}\n" fi done + + else + ${BACKUP_METHOD}_backup fi - - ${BACKUP_METHOD}_backup } backup_logger() { @@ -371,7 +372,7 @@ backup_logger() { echo " - Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log echo " - Alias : FALSE" >> $TMP/backup/conf_log fi - + LOGGABLE=("$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION" "$SCRIPT_PATH/$SCRIPT_FILE_NAME" "$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME" "$LAUNCHER_PATH/$APP_NAME.desktop" "$APP_CONFIG_PATH") for LOG_ITEM in ${LOGGABLE[@]} ; do @@ -470,9 +471,9 @@ pack_backup() { COMPRESSION_METHOD=("pbzip2" "gzip" "bzip2" "zip") until [ "$BACKUP_COMPRESSION" ] ; do - for COMPRESSION_TYPE in ${COMPRESSION_METHOD[@]} ; do + for COMPRESSION_TYPE in "${COMPRESSION_METHOD[@]}" ; do - if [ "$(command -v $COMPRESSION_TYPE) > /dev/null 2>&1" ] ; then + if command -v $COMPRESSION_TYPE > /dev/null 2>&1 ; then BACKUP_COMPRESSION=$COMPRESSION_TYPE break fi @@ -522,6 +523,27 @@ pack_backup() { fi } +### RESTORE BACKUP +restore_backup() { + if [ $(ls $BACKUP_PATH\/$APP_NAME\.*.backup_* | wc -l) -gt "1" ] ; then + NUMBER=1 + mkdir -p $TMP/backup_restore + CWD=$(pwd) + cd $BACKUP_PATH + RESTORE_OPTIONS=$(ls -lt $APP_NAME\.*.backup_* | awk '{print $9}') + + for RESTORE_TARGET in ${RESTORE_OPTIONS[@]} ; do + echo "$NUMBER - $RESTORE_TARGET" >> $TMP/backup_restore/options + NUMBER=$(($NUMBER+1)) + done + + cd $CWD + echo -e "$(cat $TMP/backup_restore/options)" + rm -rf $TMP + fi + +} + ### REMOVE remove_application() { if [ -d "$INSTALL_PATH" ] ; then @@ -846,6 +868,7 @@ while getopts ":i,:l,:a,:u,:b,:r,:c,:s,:S,:h" OPTION ; do h) help + restore_backup exit ;; *)