From 3620277b98eee761f8535168a4714f5bbdccfe2e Mon Sep 17 00:00:00 2001 From: Fr4nz D13trich Date: Sat, 10 Jan 2026 19:03:18 +0100 Subject: [PATCH 01/17] Output adjustment --- helium_helper.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helium_helper.sh b/helium_helper.sh index ec36448..bd10e91 100755 --- a/helium_helper.sh +++ b/helium_helper.sh @@ -564,7 +564,7 @@ update_script() { wget -P $TMP $REMOTE_REPO_URL/$AUTO_SCRIPT_FILE_NAME -q chmod +x $TMP/$SCRIPT_FILE_NAME $TMP/$AUTO_SCRIPT_FILE_NAME mv $TMP/$SCRIPT_FILE_NAME $TMP/$AUTO_SCRIPT_FILE_NAME $SCRIPT_PATH - echo -e "\n ${GRN}$SCRIPT_FILE_NAME is up-to-date!${CRS}" + echo -e "\n ${GRN}$SCRIPT_FILE_NAME is up-to-date!${CRS}\n" break elif [[ "$CONFIRM_SCRIPT_INSTALL" == "n" || "$CONFIRM_SCRIPT_INSTALL" == "N" ]] ; then From 42689a9605f81196b8b8e9bef336d4b59c429790 Mon Sep 17 00:00:00 2001 From: Fr4nz D13trich Date: Sun, 11 Jan 2026 17:49:20 +0100 Subject: [PATCH 02/17] DE check for propper notification on kde and gnome --- helium_launcher_update.sh | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/helium_launcher_update.sh b/helium_launcher_update.sh index a1fb03b..0f2d1c2 100755 --- a/helium_launcher_update.sh +++ b/helium_launcher_update.sh @@ -9,7 +9,6 @@ APP_NAME_LONG="Helium Web Browser" ARCH="x86_64" FILE_EXTENSION="AppImage" APP_SOURCE="GitHub" -NOTIFY_NAME="Helium Helper" SCRIPT_NAME="$APP_NAME Launcher Updater" PARENT_SCRIPT_FILE_NAME="helium_helper.sh" SCRIPT_FILE_NAME="helium_launcher_update.sh" @@ -17,6 +16,9 @@ SCRIPT_VERSION="0.5.9.1" LOG_DATE=$(date) DATE=$(date +"%d%m%y") +## NOTIFICATIONS +NOTIFY_NAME="Helium Helper" + ## LOCATIONS TMP=/tmp/$APP_NAME INSTALL_PATH=$HOME/.apps/$APP_NAME @@ -87,6 +89,15 @@ dependency_check () { } +### DE CHECK +desktop_environment() { + ALTERNATIVE_NOTIFY="--app-name="$NOTIFY_NAME"" + + if [[ "$(echo $XDG_CURRENT_DESKTOP | grep -iF "kde")" || "$(echo $XDG_CURRENT_DESKTOP | grep -iF "gnome")" ]] ; then + NOTIFY_NAME=$ALTERNATIVE_NOTIFY + fi +} + ### BACKUP backup_helium() { if [[ -d "$INSTALL_PATH" || -d "$SCRIPT_PATH" || -d $APP_CONFIG_PATH ]] ; then @@ -154,13 +165,13 @@ backup_helium() { cd $TMP && rm -rf backup else - echo "$LOG_DATE | Backup - Backup (uncompressed) written to $BACKUP_PATH" >> $LOG + echo "$LOG_DATE | Backup (uncompressed) written to $BACKUP_PATH" >> $LOG mkdir -p $BACKUP_PATH mv $TMP/backup $BACKUP_PATH/$APP_NAME.auto_backup_$DATE cd $TMP && rm -rf backup fi - echo "$LOG_DATE | Backup - Backup (compressed $BACKUP_COMPRESSION archive) written to $BACKUP_PATH" >> $LOG + echo "$LOG_DATE | Backup (compressed $BACKUP_COMPRESSION archive) written to $BACKUP_PATH" >> $LOG notify-send --icon="$ICON" "$NOTIFY_NAME" "Backup created" cd $CWD fi @@ -353,6 +364,9 @@ done ## DEPENDENCY CHECK dependency_check +## DE CHECK +desktop_environment + ## UPDATE update_helium From 489fb720c22a9d432ef9b3b777f81c4120b64f8d Mon Sep 17 00:00:00 2001 From: Fr4nz D13trich Date: Sun, 11 Jan 2026 17:49:55 +0100 Subject: [PATCH 03/17] Update --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 66e4c18..19548bb 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ With "little" tinkering it should be possible to apply this script to install, u ``` --- ### First Install -To initally install Helium browser via this script, download helium_helper.sh and make it executable: +To initally install Helium browser via this script, download `helium_helper.sh` and make it executable: ```sh wget https://lab.c95.org/fr4nz/helium-helper/raw/branch/main/helium_helper.sh && chmod +x helium_helper.sh ``` @@ -30,7 +30,7 @@ Run script with install parameter _-i_ ### Updating **From launcher** (if added during install or by running `./helium_helper.sh -l`) -Checking for the latest version and updating can simply be done for the browser as well as the script by right clicking the app icon and choosing either update option, which will be run by `helium_launcher_update.sh`. This will backup all files that are being updated and write a log. +Checking for the latest version and updating can simply be done for the browser as well as the script by right clicking the app icon and choosing either update option, which will be run by `helium_launcher_update.sh`. This will backup all files and configuration and write a log. **Terminal** From f9a6599993890b58381d65b79c66da7491ed0f0e Mon Sep 17 00:00:00 2001 From: Fr4nz D13trich Date: Sun, 11 Jan 2026 21:57:56 +0100 Subject: [PATCH 04/17] Config logger added for reverting from backup --- helium_helper.sh | 54 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 47 insertions(+), 7 deletions(-) diff --git a/helium_helper.sh b/helium_helper.sh index bd10e91..9301576 100755 --- a/helium_helper.sh +++ b/helium_helper.sh @@ -332,28 +332,68 @@ 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_* - ${BACKUP_METHOD}_backup break else echo -e "\n ${YEL}Invalid response!${CRS}\n" fi - done - - else - ${BACKUP_METHOD}_backup + done fi + backup_logger + ${BACKUP_METHOD}_backup +} + +backup_logger() { + mkdir -p $TMP/backup + echo "### $APP_NAME_LONG CONFIG SNAPSHOT $(date) ###" >> $TMP/backup/conf_log + echo >> $TMP/backup/conf_log + shell_check + + if [ "$ACTIVE_SHELL" == "zsh" ] ; then + if [ "$(cat $HOME/.zshrc | grep "$ALIAS")" ] ; then + echo " - Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log + echo " - Alias : TRUE" >> $TMP/backup/conf_log + fi + + elif [ "$ACTIVE_SHELL" == "bash" ] ; then + if [ "$(cat $HOME/.bashrc | grep "$ALIAS")" ] ; then + echo " - Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log + echo " - Alias : TRUE" >> $TMP/backup/conf_log + fi + + elif [ "$ACTIVE_SHELL" == "fish" ] ; then + if [ "$(cat $HOME/.config/fish/config.fish | grep "source $HOME/.config/fish/$ALIAS.fish")" ] ; then + echo " - Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log + echo " - Alias : TRUE" >> $TMP/backup/conf_log + fi + + else + 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 + + if [ -d "$LOG_ITEM" ] ; then + echo " - Directory : $LOG_ITEM" >> $TMP/backup/conf_log + + elif [ -f "$LOG_ITEM" ] ; then + echo " - File : $LOG_ITEM" >> $TMP/backup/conf_log + + else + echo " - N/A : $LOG_ITEM" >> $TMP/backup/conf_log + fi + done } backup_file_collector() { for BACKUP_ITEM in ${BACKUPABLE[@]} ; do if [ -d "$BACKUP_ITEM" ] ; then - mkdir -p $TMP/backup cp -r $BACKUP_ITEM $TMP/backup elif [ -f "$BACKUP_ITEM" ] ; then - mkdir -p $TMP/backup cp $BACKUP_ITEM $TMP/backup fi done From ae18eac9b97b284a50c45dc1f4cfd94692935093 Mon Sep 17 00:00:00 2001 From: Fr4nz D13trich Date: Sun, 11 Jan 2026 22:26:47 +0100 Subject: [PATCH 05/17] Backup logger refinements --- helium_helper.sh | 50 ++++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/helium_helper.sh b/helium_helper.sh index 9301576..9632734 100755 --- a/helium_helper.sh +++ b/helium_helper.sh @@ -339,42 +339,42 @@ call_backup() { fi done fi - backup_logger + ${BACKUP_METHOD}_backup } backup_logger() { - mkdir -p $TMP/backup echo "### $APP_NAME_LONG CONFIG SNAPSHOT $(date) ###" >> $TMP/backup/conf_log echo >> $TMP/backup/conf_log + echo -e "\n - ${CRS}Creating ${CYN}config log${CRS}...${CRS}" shell_check - if [ "$ACTIVE_SHELL" == "zsh" ] ; then - if [ "$(cat $HOME/.zshrc | grep "$ALIAS")" ] ; then - echo " - Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log - echo " - Alias : TRUE" >> $TMP/backup/conf_log - fi - - elif [ "$ACTIVE_SHELL" == "bash" ] ; then - if [ "$(cat $HOME/.bashrc | grep "$ALIAS")" ] ; then - echo " - Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log - echo " - Alias : TRUE" >> $TMP/backup/conf_log - fi - - elif [ "$ACTIVE_SHELL" == "fish" ] ; then - if [ "$(cat $HOME/.config/fish/config.fish | grep "source $HOME/.config/fish/$ALIAS.fish")" ] ; then - echo " - Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log - echo " - Alias : TRUE" >> $TMP/backup/conf_log - fi - - else + if [ "$ACTIVE_SHELL" == "zsh" ] ; then + if [ "$(cat $HOME/.zshrc | grep "$ALIAS")" ] ; then echo " - Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log - echo " - Alias : FALSE" >> $TMP/backup/conf_log + echo " - Alias : TRUE" >> $TMP/backup/conf_log fi + + elif [ "$ACTIVE_SHELL" == "bash" ] ; then + if [ "$(cat $HOME/.bashrc | grep "$ALIAS")" ] ; then + echo " - Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log + echo " - Alias : TRUE" >> $TMP/backup/conf_log + fi + + elif [ "$ACTIVE_SHELL" == "fish" ] ; then + if [ "$(cat $HOME/.config/fish/config.fish | grep "source $HOME/.config/fish/$ALIAS.fish")" ] ; then + echo " - Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log + echo " - Alias : TRUE" >> $TMP/backup/conf_log + fi + + else + 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 + for LOG_ITEM in ${LOGGABLE[@]} ; do if [ -d "$LOG_ITEM" ] ; then echo " - Directory : $LOG_ITEM" >> $TMP/backup/conf_log @@ -391,12 +391,16 @@ backup_file_collector() { for BACKUP_ITEM in ${BACKUPABLE[@]} ; do if [ -d "$BACKUP_ITEM" ] ; then + mkdir -p $TMP/backup cp -r $BACKUP_ITEM $TMP/backup elif [ -f "$BACKUP_ITEM" ] ; then + mkdir -p $TMP/backup cp $BACKUP_ITEM $TMP/backup fi done + + backup_logger } script_backup() { From 8bace469da7837e044b4b4fc7caf598e93a624b5 Mon Sep 17 00:00:00 2001 From: Fr4nz D13trich Date: Sun, 11 Jan 2026 22:27:22 +0100 Subject: [PATCH 06/17] update --- devdoc.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/devdoc.md b/devdoc.md index 17b5150..7a6784c 100644 --- a/devdoc.md +++ b/devdoc.md @@ -43,12 +43,15 @@ - Removal process adjusted - $1 verifier added - Readme updated +--- +- Notification adjusted for KDE & GNOME ## Add/To Do - Roll back from backup - Update Readme - Make functional launcher optional +- Variable transfer script ## Repo - Merge workflow From e7580571ced1efa060822132ab5522666ec3236d Mon Sep 17 00:00:00 2001 From: Fr4nz D13trich Date: Mon, 12 Jan 2026 00:41:50 +0100 Subject: [PATCH 07/17] Backup initialisation started --- helium_helper.sh | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/helium_helper.sh b/helium_helper.sh index 9632734..6603d80 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 } @@ -332,6 +331,7 @@ 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_* + ${BACKUP_METHOD}_backup break else @@ -339,8 +339,6 @@ call_backup() { fi done fi - - ${BACKUP_METHOD}_backup } backup_logger() { @@ -522,6 +520,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 +865,7 @@ while getopts ":i,:l,:a,:u,:b,:r,:c,:s,:S,:h" OPTION ; do h) help + restore_backup exit ;; *) From 1f1573f58c66381bf99bb28f748ea67af731dc3b Mon Sep 17 00:00:00 2001 From: Fr4nz D13trich Date: Mon, 12 Jan 2026 19:17:23 +0100 Subject: [PATCH 08/17] Backup function fixed if pbzip2 was not installed --- helium_helper.sh | 45 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 11 deletions(-) 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 ;; *) From 0807f98eea95378e58043cccc3c7e753746f0171 Mon Sep 17 00:00:00 2001 From: Fr4nz D13trich Date: Mon, 12 Jan 2026 19:18:29 +0100 Subject: [PATCH 09/17] Backup function fixed if pbzip2 was not installed --- helium_helper.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/helium_helper.sh b/helium_helper.sh index 3705ac9..ae28ea0 100755 --- a/helium_helper.sh +++ b/helium_helper.sh @@ -647,11 +647,11 @@ update_script() { ### CHECK FOR EMPTY VERSION TAGS if [ -z "$SCRIPT_VERSION" ] ; then - echo -e "\n ${RED}Empty version tag from ${CYN}local script${RED}! Can't compare, exiting...${CRS}" + echo -e "\n ${RED}Empty version tag from ${CYN}local script${RED}! Can't compare, exiting...${CRS}\n" exit elif [ -z "$REMOTE_SCRIPT_VERSION" ] ; then - echo -e "\n ${RED}Empty version tag from ${CYN}remote script${RED}! Can't compare, exiting...${CRS}" + echo -e "\n ${RED}Empty version tag from ${CYN}remote script${RED}! Can't compare, exiting...${CRS}\n" exit fi From 4aa3755b19bcc7fe6188e977fb8967b6c863bcc0 Mon Sep 17 00:00:00 2001 From: Fr4nz D13trich Date: Mon, 12 Jan 2026 19:25:20 +0100 Subject: [PATCH 10/17] revert help abuse --- helium_helper.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/helium_helper.sh b/helium_helper.sh index ae28ea0..1f96880 100755 --- a/helium_helper.sh +++ b/helium_helper.sh @@ -868,7 +868,6 @@ while getopts ":i,:l,:a,:u,:b,:r,:c,:s,:S,:h" OPTION ; do h) help - restore_backup exit ;; *) From 53307fa77a5cd1bbc2824d9b30a193d083c7426c Mon Sep 17 00:00:00 2001 From: Fr4nz D13trich Date: Wed, 14 Jan 2026 01:05:38 +0100 Subject: [PATCH 11/17] Init restore function added; path correction function added --- helium_helper.sh | 152 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 118 insertions(+), 34 deletions(-) diff --git a/helium_helper.sh b/helium_helper.sh index 52dad3e..62f06e5 100755 --- a/helium_helper.sh +++ b/helium_helper.sh @@ -44,9 +44,9 @@ REMOTE_REPO_URL=https://lab.c95.org/fr4nz/helium-helper/raw/branch/$REMOTE_REPO_ REMOTE_SCRIPT_URL=$REMOTE_REPO_URL/$SCRIPT_FILE_NAME APP_SOURCE_URL=https://api.github.com/repos/imputnet/helium-linux/releases/latest -########## FUNCTIONS ########### +########################### FUNCTIONS ############################ -### DEPENDENCIES +#################### DEPENDENCY CHECK #################### cmd_query() { if ! command -v $PACKAGE > /dev/null 2>&1 ; then echo " - $PACKAGE" >> $TMP/missingDeps @@ -68,7 +68,7 @@ dependency_check () { fi } -### SHELL CHECK +#################### SHELL CHECK #################### shell_query() { if [ "$(echo $SHELL | grep "$SHELL_OPTION")" ] ; then ACTIVE_SHELL=$SHELL_OPTION @@ -84,7 +84,7 @@ shell_check() { done } -### ARCH CHECK +#################### ARCH CHECK #################### arch_check() { if [ "$ARCH_OVERRIDE" ] ; then ARCH=$ARCH_OVERRIDE @@ -105,7 +105,7 @@ arch_check() { fi } -### CHECK LOCAL INSTALL +#################### LOCAL INSTALL CHECK #################### local_check() { if ! [ -d "$INSTALL_PATH" ] ; then echo -e "\n ${YEL}$APP_NAME_LONG directory not found!${CRS}\n" @@ -119,7 +119,33 @@ local_check() { fi } -### INSTALL +#################### VARIABLE CHECK #################### +path_correction() { + if [ "$TARGET" == "INSTALL" ] ; then + TARGET_PATH=$INSTALL_PATH + + elif [ "$TARGET" == "BACKUP" ] ; then + TARGET_PATH=$BACKUP_PATH + fi + + if ! [ ${TARGET_PATH:0:1} == "/" ] ; then + TARGET_PATH=$(pwd)/$TARGET_PATH + fi + + REVERSE_PATH=$(echo $TARGET_PATH | rev) + if [ "${REVERSE_PATH:0:1}" == "/" ] ; then + TARGET_PATH=$(echo $TARGET_PATH | sed "s|.$||") + fi + + if [ "$TARGET" == "INSTALL" ] ; then + INSTALL_PATH=$TARGET_PATH + + elif [ "$TARGET" == "BACKUP" ] ; then + BACKUP_PATH=$TARGET_PATH + fi +} + +#################### INSTALL #################### install_application() { if [ -f "$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION" ] ; then echo -e " ${YEL}$APP_NAME_LONG AppImage found! Trying to update...${CRS}" @@ -152,7 +178,7 @@ install_application() { done } -### LAUNCHER +#################### LAUNCHER #################### add_launcher() { if [ -f "$LAUNCHER_PATH/$APP_NAME.desktop" ] ; then echo -e "\n ${YEL}${APP_NAME}.desktop already exists!${CRS}" @@ -205,7 +231,7 @@ add_launcher() { fi } -### ALIAS +#################### ALIAS #################### add_alias() { if ! [ -f "$SCRIPT_PATH/$SCRIPT_FILE_NAME" ] ; then mkdir -p $SCRIPT_PATH @@ -257,7 +283,7 @@ add_alias() { fi } -### UPDATE +#################### UPDATE #################### update_application() { LOCAL_VERSION=$($INSTALL_PATH/$APP_NAME.$FILE_EXTENSION --version | awk '{print $2}') APP_SOURCE_VERSION=$(curl -s $APP_SOURCE_URL | grep "tag_name" | tr -d \", | awk '{print $2}') @@ -316,9 +342,10 @@ update_application() { fi } -### BACKUP +#################### BACKUP #################### call_backup() { - if [ $(ls $BACKUP_PATH\/$APP_NAME\.$BACKUP_METHOD\.backup_* | wc -l) -gt "1" ] ; then + BACKUP_COUNT=$(ls $BACKUP_PATH/$APP_NAME.$BACKUP_METHOD.backup_* 2> /dev/null | wc -l) + if [[ "$BACKUP_COUNT" -gt "0" ]] ; then echo -e "\n ${CYN}A $BACKUP_METHOD backup already exists!${CRS}\n" while true ; do @@ -521,28 +548,54 @@ pack_backup() { fi } -### RESTORE BACKUP -restore_backup() { - if [ $(ls $BACKUP_PATH\/$APP_NAME\.*.backup_* | wc -l) -gt "1" ] ; then - NUMBER=1 +#################### RESTORE BACKUP #################### +select_backup() { + BACKUP_COUNT=$(ls $BACKUP_PATH/$APP_NAME.$BACKUP_TYPE.backup_* 2> /dev/null | wc -l) + if [ "$BACKUP_COUNT" -gt "1" ] ; then + i=1 mkdir -p $TMP/backup_restore CWD=$(pwd) cd $BACKUP_PATH - RESTORE_OPTIONS=$(ls -lt $APP_NAME\.*.backup_* | awk '{print $9}') + RESTORE_OPTIONS=$(ls -lt $APP_NAME\.$BACKUP_TYPE\.backup_* | awk '{print $9}') for RESTORE_TARGET in ${RESTORE_OPTIONS[@]} ; do - echo "$NUMBER - $RESTORE_TARGET" >> $TMP/backup_restore/options - NUMBER=$(($NUMBER+1)) + echo " $i - $RESTORE_TARGET" >> $TMP/backup_restore/options + i=$(($i+1)) done cd $CWD - echo -e "$(cat $TMP/backup_restore/options)" - rm -rf $TMP - fi + echo -e " ${CYN}Choose one of the $BACKUP_COUNT options below${CRS}\n" + echo -e "$(cat $TMP/backup_restore/options)\n" + while true ; do + read -p " Enter backup ID (1-$BACKUP_COUNT) or exit : " RESTORE_SELECT + + if [[ "$RESTORE_SELECT" -le "$BACKUP_COUNT" && "$RESTORE_SELECT" -gt "0" ]] ; then + RESTORE_FILE=$(sed -n $RESTORE_SELECT\p $TMP/backup_restore/options | awk '{print $3}') + RESTORE_SOURCE=$BACKUP_PATH/$RESTORE_FILE + echo $RESTORE_SOURCE + break + + elif [[ "$RESTORE_SELECT" == "exit" || "$RESTORE_SELECT" == "EXIT" ]] ; then + echo + exit_clean + + else + echo -e "\n ${YEL}Invalid response!${CRS}\n" + fi + done + + elif [ "$BACKUP_COUNT" -lt "1" ] ; then + echo -e " ${RED}No backup archive found in ${CYN}$BACKUP_PATH${RED}!${CRS}" + exit_clean + + else + RESTORE_SOURCE=$(ls $BACKUP_PATH/$APP_NAME.$BACKUP_TYPE.backup_*) + echo $RESTORE_SOURCE + fi } -### REMOVE +#################### REMOVE #################### remove_application() { if [ -d "$INSTALL_PATH" ] ; then @@ -587,11 +640,11 @@ remove_application() { break elif [[ "$CONFIRM_REMOVE" == "n" || "$CONFIRM_REMOVE" == "N" ]] ; then - echo -e " ${RED}Cancelled!${CRS}" + echo -e "\n ${RED}Cancelled!${CRS}" exit else - echo -e " ${YEL}Invalid response!${CRS}\n" + echo -e "\n ${YEL}Invalid response!${CRS}\n" fi done @@ -601,12 +654,12 @@ remove_application() { fi } -### SCRIPT VERSION +#################### SCRIPT VERSION #################### script_version() { echo -e "\n ${CYN}$APP_NAME_LONG Helper Script Version : ${CRS}$SCRIPT_VERSION\n" } -### UPDATE SCRIPT +#################### UPDATE SCRIPT #################### scrip_version_info() { echo -e " - ${CYN}Local Version :\t${CRS}$SCRIPT_VERSION" echo -e " - ${CYN}Remote Version :\t${CRS}$REMOTE_SCRIPT_VERSION" @@ -697,7 +750,7 @@ update_script() { fi } -### COMPARE APP VERSION +#################### COMPARE APP VERSION #################### app_version_info() { echo -e " - ${CYN}Local Version :\t${CRS}$LOCAL_VERSION" echo -e " - ${CYN}$APP_SOURCE Version :\t${CRS}$APP_SOURCE_VERSION\n" @@ -733,17 +786,18 @@ compare_version() { fi } -### HELP +#################### HELP #################### help() { echo -e "\n${LCY}${SCRIPT_NAME}${CRS}\n" echo -e "$APP_NAME_LONG installer & updater script\n" - echo -e "Syntax: $SCRIPT_FILE_NAME [ -i | -l | -a | -u | -b | -r | -c | -s | -S | -h ]\n" + echo -e "Syntax: $SCRIPT_FILE_NAME [ -i | -l | -a | -u | -b | -B | -r | -c | -s | -S | -h ]\n" echo -e "Options:\n" echo -e "\t-i\tInstall $APP_NAME_LONG from $APP_SOURCE" echo -e "\t-l\tCreate desktop launcher" echo -e "\t-a\tCreate alias for $SCRIPT_FILE_NAME" echo -e "\t-u\tUpdate $APP_NAME_LONG from $APP_SOURCE" echo -e "\t-b\tBackup $APP_NAME_LONG & configuration" + echo -e "\t-B\tRestore $APP_NAME_LONG & configuration from backup" echo -e "\t-r\tRemove $APP_NAME_LONG" echo -e "\t-c\tCompare local to remote version" echo -e "\t-s\tShow script version" @@ -755,7 +809,7 @@ help() { echo -e "\t${CYN}${SCRIPT_PATH}${CRS}\t\t\tScript location\n" } -### EXIT CLEAN +#################### EXIT CLEAN #################### exit_clean() { if [ -d "$TMP" ] ; then rm -rf $TMP @@ -764,10 +818,9 @@ exit_clean() { exit } -########## MAIN ########## +########################### MAIN ########################### -## GET OPTIONS -while getopts ":i,:l,:a,:u,:b,:r,:c,:s,:S,:h" OPTION ; do +while getopts ":i,:l,:a,:u,:b,:B,:r,:c,:s,:S,:h" OPTION ; do if [ "$(echo $1 | wc -m)" -gt "3" ] ; then echo -e "\n${YEL}Option ${RED}$1${YEL} not valid! Use only one parameter at a time...${CRS}" @@ -777,6 +830,7 @@ while getopts ":i,:l,:a,:u,:b,:r,:c,:s,:S,:h" OPTION ; do case $OPTION in i) + TARGET="INSTALL" echo -e "\n ${YEL}Installing $APP_NAME_LONG...${CRS}\n" if [ "$#" -gt "1" ] ; then ALL_PARAMETER=$@ @@ -789,6 +843,7 @@ while getopts ":i,:l,:a,:u,:b,:r,:c,:s,:S,:h" OPTION ; do fi dependency_check arch_check + path_correction install_application exit_clean ;; @@ -823,6 +878,7 @@ while getopts ":i,:l,:a,:u,:b,:r,:c,:s,:S,:h" OPTION ; do exit_clean ;; b) + TARGET="BACKUP" echo -e "\n ${YEL}Backing up $APP_NAME_LONG...${CRS}" if [ "$#" -gt "1" ] ; then ALL_PARAMETER=$@ @@ -834,14 +890,42 @@ while getopts ":i,:l,:a,:u,:b,:r,:c,:s,:S,:h" OPTION ; do elif [[ "$PARAMETER" == "pbzip2" || "$PARAMETER" == "gzip" || "$PARAMETER" == "bzip2" || "$PARAMETER" == "zip" ]] ; then BACKUP_COMPRESSION_OVERRIDE=$PARAMETER - elif [ -d "$PARAMETER" ] ; then + elif [[ -d "$PARAMETER" || -d "$(pwd)/$PARAMETER" ]] ; then BACKUP_PATH=$PARAMETER fi done fi + path_correction call_backup exit ;; + B) + TARGET="BACKUP" + echo -e "\n ${YEL}Restoring $APP_NAME_LONG from backup...${CRS}\n" + if [ "$#" -gt "1" ] ; then + ALL_PARAMETER=$@ + + for PARAMETER in ${ALL_PARAMETER[@]} ; do + if [[ "$PARAMETER" == "script" || "$PARAMETER" == "config" || "$PARAMETER" == "app" || "$PARAMETER" == "full" ]] ; then + BACKUP_TYPE=$PARAMETER + + elif [[ -d $PARAMETER || -d $(pwd)/$PARAMETER ]] ; then + BACKUP_PATH=$PARAMETER + + else + BACKUP_TYPE=* + fi + done + + else + BACKUP_TYPE=* + + fi + dependency_check + path_correction + select_backup + exit_clean ;; + r) echo -e "\n ${YEL}Removing $APP_NAME_LONG...${CRS}\n" remove_application From 60136a75fe17f0aec3c0b0d0c0fc69068a40f716 Mon Sep 17 00:00:00 2001 From: Fr4nzD13trich Date: Fri, 16 Jan 2026 14:33:51 +0100 Subject: [PATCH 12/17] Restore select function added; Decompress function added; Configure restore function added --- helium_helper.sh | 175 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 150 insertions(+), 25 deletions(-) diff --git a/helium_helper.sh b/helium_helper.sh index 62f06e5..aaaedc1 100755 --- a/helium_helper.sh +++ b/helium_helper.sh @@ -24,13 +24,14 @@ SCRIPT_NAME="$APP_NAME Helper Script" SCRIPT_FILE_NAME="helium_helper.sh" AUTO_SCRIPT_FILE_NAME="helium_launcher_update.sh" SCRIPT_VERSION="0.5.9.1" -ALIAS="update-helium" +ALIAS="helium-helper" DATE=$(date +"%d%m%y") ## LOCATIONS TMP=/tmp/$APP_NAME -INSTALL_PATH=$HOME/.apps/$APP_NAME -APP_CONFIG_PATH=$HOME/.config/net.imput.helium +INSTALL_PATH=$HOME/.apps/$APP_NAME\1 +APP_CONFIG_FOLDER="net.imput.helium" +APP_CONFIG_PATH=$HOME/.config/$APP_CONFIG_FOLDER ASSET_PATH=$INSTALL_PATH/assets BACKUP_PATH=$ASSET_PATH/backup LOG_PATH=$ASSET_PATH/logs @@ -377,40 +378,50 @@ backup_logger() { if [ "$ACTIVE_SHELL" == "zsh" ] ; then if [ "$(cat $HOME/.zshrc | grep "$ALIAS")" ] ; then - echo " - Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log - echo " - Alias : TRUE" >> $TMP/backup/conf_log + echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log + echo " # Alias : TRUE" >> $TMP/backup/conf_log fi elif [ "$ACTIVE_SHELL" == "bash" ] ; then if [ "$(cat $HOME/.bashrc | grep "$ALIAS")" ] ; then - echo " - Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log - echo " - Alias : TRUE" >> $TMP/backup/conf_log + echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log + echo " # Alias : TRUE" >> $TMP/backup/conf_log fi elif [ "$ACTIVE_SHELL" == "fish" ] ; then if [ "$(cat $HOME/.config/fish/config.fish | grep "source $HOME/.config/fish/$ALIAS.fish")" ] ; then - echo " - Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log - echo " - Alias : TRUE" >> $TMP/backup/conf_log + echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log + echo " # Alias : TRUE" >> $TMP/backup/conf_log fi else - echo " - Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log - echo " - Alias : FALSE" >> $TMP/backup/conf_log + 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 if [ -d "$LOG_ITEM" ] ; then - echo " - Directory : $LOG_ITEM" >> $TMP/backup/conf_log + echo " # Folder : $LOG_ITEM" >> $TMP/backup/conf_log elif [ -f "$LOG_ITEM" ] ; then - echo " - File : $LOG_ITEM" >> $TMP/backup/conf_log + echo " # File : $LOG_ITEM" >> $TMP/backup/conf_log else - echo " - N/A : $LOG_ITEM" >> $TMP/backup/conf_log + echo " # N/A : $LOG_ITEM" >> $TMP/backup/conf_log fi done + + echo >> $TMP/backup/conf_log + echo >> $TMP/backup/conf_log + echo "### $SCRIPT_FILE_NAME VARIABLES ###" >> $TMP/backup/conf_log + echo >> $TMP/backup/conf_log + echo "INSTALL_PATH=$INSTALL_PATH" >> $TMP/backup/conf_log + echo "SCRIPT_PATH=$SCRIPT_PATH" >> $TMP/backup/conf_log + echo "LAUNCHER_PATH=$LAUNCHER_PATH" >> $TMP/backup/conf_log + echo "APP_CONFIG_PATH=$APP_CONFIG_PATH" >> $TMP/backup/conf_log + echo >> $TMP/backup/conf_log } backup_file_collector() { @@ -564,7 +575,7 @@ select_backup() { done cd $CWD - echo -e " ${CYN}Choose one of the $BACKUP_COUNT options below${CRS}\n" + echo -e "\n ${CYN}Choose one of the $BACKUP_COUNT options below${CRS}\n" echo -e "$(cat $TMP/backup_restore/options)\n" while true ; do @@ -572,8 +583,8 @@ select_backup() { if [[ "$RESTORE_SELECT" -le "$BACKUP_COUNT" && "$RESTORE_SELECT" -gt "0" ]] ; then RESTORE_FILE=$(sed -n $RESTORE_SELECT\p $TMP/backup_restore/options | awk '{print $3}') + BACKUP_TYPE=$(echo $RESTORE_FILE | awk -F'.' '{print $2}') RESTORE_SOURCE=$BACKUP_PATH/$RESTORE_FILE - echo $RESTORE_SOURCE break elif [[ "$RESTORE_SELECT" == "exit" || "$RESTORE_SELECT" == "EXIT" ]] ; then @@ -586,12 +597,128 @@ select_backup() { done elif [ "$BACKUP_COUNT" -lt "1" ] ; then - echo -e " ${RED}No backup archive found in ${CYN}$BACKUP_PATH${RED}!${CRS}" + echo -e " ${RED}No backup archive found in ${CYN}$BACKUP_PATH${RED}!${CRS}\n" exit_clean else RESTORE_SOURCE=$(ls $BACKUP_PATH/$APP_NAME.$BACKUP_TYPE.backup_*) - echo $RESTORE_SOURCE + RESTORE_FILE=$(echo $RESTORE_SOURCE | rev | awk -F'/' '{print $1}' | rev) + + if [ "$BACKUP_TYPE" == "*" ] ; then + BACKUP_TYPE=$(file $RESTORE_SOURCE | awk '{print $1}' | awk -F'.' '{print $2}') + fi + fi + + BACKUP_COMPRESSION=$(file $RESTORE_SOURCE | awk '{print $2}') + decompress_backup + configure_restore + restore_backup +} + +decompress_backup() { + CWD=$(pwd) + mkdir -p $TMP/backup_restore + cd $TMP/backup_restore + echo -e "\n - ${CRS}Decompressing backup archive ${CYN}$RESTORE_FILE${CRS}...${CRS}\n" + cp $RESTORE_SOURCE . + + if [ "$BACKUP_COMPRESSION" == "bzip2" ] ; then + tar -xjf $APP_NAME.*.backup_*.tar.bz2 + rm $APP_NAME.*.backup_*.tar.bz2 + + elif [ "$BACKUP_COMPRESSION" == "gzip" ] ; then + tar -xzf $APP_NAME.*.backup_*.tar.gz + rm $APP_NAME.*.backup_*.tar.gz + + elif [ "$BACKUP_COMPRESSION" == "zip" ] ; then + unzip $APP_NAME.*.backup_*.tar.zip + tar -xf $APP_NAME.*.backup_*.tar + rm $APP_NAME.*.backup_*.tar.zip $APP_NAME.*.backup_*.tar.zip + + else + echo -e " ${YEL}TBA...${CRS}\n" ####################################################################### + fi +} + +configure_restore() { + echo -e " - ${CRS}Analysing ${CYN}$BACKUP_TYPE${CRS} backup content...${CRS}\n" + + RESTORABLE=("$APP_NAME.$FILE_EXTENSION" "$SCRIPT_FILE_NAME" "$AUTO_SCRIPT_FILE_NAME" "$APP_NAME.desktop" "$APP_CONFIG_FOLDER") + + for RESTORE_ITEM in ${RESTORABLE[@]} ; do + if [ -d "$RESTORE_ITEM" ] ; then + if [ -d "$APP_CONFIG_PATH" ] ; then + echo " - Folder : $RESTORE_ITEM | already present" >> $TMP/restore_conf + echo $RESTORE_ITEM >> $TMP/restore_check + + else + echo " - Folder : $RESTORE_ITEM | not present" >> $TMP/restore_conf + fi + + elif [ -f "$RESTORE_ITEM" ] ; then + if [[ -f "$INSTALL_PATH/$RESTORE_ITEM" || -f "$SCRIPT_PATH/$RESTORE_ITEM" || -f "$LAUNCHER_PATH/$RESTORE_ITEM" ]] ; then + echo " - File : $RESTORE_ITEM | already present" >> $TMP/restore_conf + echo "\"$RESTORE_ITEM\"" >> $TMP/restore_check + + else + echo " - File : $RESTORE_ITEM | not present" >> $TMP/restore_conf + fi + fi + done + + RESTORE_PATH=("INSTALL_PATH" "SCRIPT_PATH" "LAUNCHER_PATH" "APP_CONFIG_PATH") + ################################################################################################# + for CHANGED in ${RESTORE_PATH[@]} ; do + LOCAL_PATH=$(echo \$$CHANGED) + echo $LOCAL_PATH + if [ "$(cat conf_log | grep $RESTORE_PATH | awk -F '=' '{print $2}')" == "$LOCAL_PATH" ] ; then + echo $(cat conf_log | grep "${CHANGED}_PATH") >> $TMP/restore_path_change + echo "${CHANGED}_PATH" + + else + echo "BAD" + echo $(cat conf_log | grep "${CHANGED}_PATH") + fi + done +} + +restore_backup() { + echo -e " ${LCY}Backup Content Summary${CRS}\n" + echo -e "$(cat $TMP/restore_conf)\n" + + if [ -f "$TMP/restore_check" ] ; then + echo -e " ${RED}WARNING: Some items are existing on your system!${CRS}\n" + + while true ; do + read -p " Overwrite existing? (y/N) : " RESTORE_OVERWRITE + + if [[ "$RESTORE_OVERWRITE" == "" || "$RESTORE_OVERWRITE" == "n" || "$RESTORE_OVERWRITE" == "N" ]] ; then + echo -e "\n ${RED}Cancelled!${CRS}\n" + break + + elif [[ "$RESTORE_OVERWRITE" == "y" || "$RESTORE_OVERWRITE" == "Y" ]] ; then + EXISTING=$(cat $TMP/restore_check) + + for REPLACE in ${EXISTING[@]} ; do + rm -rf $REPLACE + done + fi + done + + else + echo -e " ${CYN}The content above is about to be restored...${CRS}\n" + + while true ; do + read -p " Proceed with changes? (Y/n) : " RESTORE_CONFIRM + + if [[ "$RESTORE_CONFIRM" == "" || "$RESTORE_CONFIRM" == "y" || "$RESTORE_CONFIRM" == "Y" ]] ; then + echo -e " - ${CRS}Copying ${CYN}$BACKUP_TYPE${CRS} backup files...${CRS}\n" + + elif [[ "$RESTORE_CONFIRM" == "n" || "$RESTORE_CONFIRM" == "N" ]] ; then + echo -e "\n ${RED}Cancelled!${CRS}\n" + break + fi + done fi } @@ -675,8 +802,7 @@ update_script() { read -p " Copy script to $SCRIPT_PATH? (Y/n) : " CONFIRM_SCRIPT_INSTALL if [[ "$CONFIRM_SCRIPT_INSTALL" == "" || "$CONFIRM_SCRIPT_INSTALL" == "y" || "$CONFIRM_SCRIPT_INSTALL" == "Y" ]] ; then - mkdir -p $SCRIPT_PATH - mkdir -p $TMP + mkdir -p $SCRIPT_PATH $TMP wget -P $TMP $REMOTE_SCRIPT_URL -q wget -P $TMP $REMOTE_REPO_URL/$AUTO_SCRIPT_FILE_NAME -q chmod +x $TMP/$SCRIPT_FILE_NAME $TMP/$AUTO_SCRIPT_FILE_NAME @@ -719,7 +845,6 @@ update_script() { while true ; do read -p " Update $SCRIPT_FILE_NAME? (Y/n) : " CONFIRM_SCRIPT_UPDATE - echo if [[ "$CONFIRM_SCRIPT_UPDATE" == "" || "$CONFIRM_SCRIPT_UPDATE" == "y" || "$CONFIRM_SCRIPT_UPDATE" == "Y" ]] ; then if ! [ -d "$BACKUP_PATH" ] ; then @@ -735,11 +860,11 @@ update_script() { break elif [[ "$CONFIRM_SCRIPT_UPDATE" == "n" || "$CONFIRM_SCRIPT_UPDATE" == "N" ]] ; then - echo -e " ${RED}Cancelled!${CRS}\n" + echo -e "\n ${RED}Cancelled!${CRS}\n" break else - echo -e " ${YEL}Invalid response!${CRS}\n" + echo -e "\n ${YEL}Invalid response!${CRS}\n" fi done @@ -897,11 +1022,11 @@ while getopts ":i,:l,:a,:u,:b,:B,:r,:c,:s,:S,:h" OPTION ; do fi path_correction call_backup - exit ;; + exit_clean ;; B) TARGET="BACKUP" - echo -e "\n ${YEL}Restoring $APP_NAME_LONG from backup...${CRS}\n" + echo -e "\n ${YEL}Restoring $APP_NAME_LONG from backup...${CRS}" if [ "$#" -gt "1" ] ; then ALL_PARAMETER=$@ From 519e36de438e19e9e4b0c44437d749ccecc25f70 Mon Sep 17 00:00:00 2001 From: Fr4nzD13trich Date: Sat, 17 Jan 2026 11:18:42 +0100 Subject: [PATCH 13/17] Bad typo fixed --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 19548bb..9de4490 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Helium Bowser installer & updater +# Helium Browser installer & updater ## Purpose This script was initially designed to just update my Helium browser but over time and interest it got more functional and universal. It includes functions to install, update, remove, add launcher, etc... It's supposed to run in user space and is (Linux) distro independent I suppose. From 6c601ad66b52d2069055fa1c8395aa0a2a938c75 Mon Sep 17 00:00:00 2001 From: Fr4nzD13trich Date: Sat, 17 Jan 2026 11:18:55 +0100 Subject: [PATCH 14/17] update --- devdoc.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/devdoc.md b/devdoc.md index 7a6784c..35577c5 100644 --- a/devdoc.md +++ b/devdoc.md @@ -45,7 +45,13 @@ - Readme updated --- - Notification adjusted for KDE & GNOME - +- Backup compression to pass as argument +- Restoration process added --> partially + - Backup selector works + - Backup decompression works + - Restoration config generator --> incomplete + - Restoration function --> incomlete +- Alias changed to "helium-helper" ## Add/To Do - Roll back from backup From 4932d84c679f519db7910b96714c5da6efe5c85a Mon Sep 17 00:00:00 2001 From: Fr4nz D13trich Date: Sun, 18 Jan 2026 00:15:42 +0100 Subject: [PATCH 15/17] Several restore checks added --- helium_helper.sh | 226 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 181 insertions(+), 45 deletions(-) diff --git a/helium_helper.sh b/helium_helper.sh index aaaedc1..dfe100c 100755 --- a/helium_helper.sh +++ b/helium_helper.sh @@ -5,6 +5,7 @@ set -e ## SOME COLOR CYN="\e[0;36m" +MGT="\e[0;35m" YEL="\e[0;33m" RED="\e[0;31m" GRN="\e[0;32m" @@ -49,7 +50,7 @@ APP_SOURCE_URL=https://api.github.com/repos/imputnet/helium-linux/releases/lates #################### DEPENDENCY CHECK #################### cmd_query() { - if ! command -v $PACKAGE > /dev/null 2>&1 ; then + if ! command -v $PACKAGE > /dev/null 2>&1 ; then echo " - $PACKAGE" >> $TMP/missingDeps fi } @@ -73,14 +74,13 @@ dependency_check () { shell_query() { if [ "$(echo $SHELL | grep "$SHELL_OPTION")" ] ; then ACTIVE_SHELL=$SHELL_OPTION - fi - + fi } shell_check() { SHELLS=("bash" "fish" "zsh") - for SHELL_OPTION in "${SHELLS[@]}" ; do + for SHELL_OPTION in ${SHELLS[@]} ; do shell_query "$SHELL_OPTION" done } @@ -354,7 +354,7 @@ call_backup() { if [[ "$OVERWRITE_BACKUP" == "" || "$OVERWRITE_BACKUP" == "n" || "$OVERWRITE_BACKUP" == "N" ]] ; then echo -e "\n ${YEL}Skipping backup process...${CRS}\n" - break + exit_clean elif [[ "$OVERWRITE_BACKUP" == "y" || "$OVERWRITE_BACKUP" == "Y" ]] ; then echo -e "\n ${YEL}Overwriting backup...${CRS}" @@ -378,20 +378,32 @@ backup_logger() { if [ "$ACTIVE_SHELL" == "zsh" ] ; then if [ "$(cat $HOME/.zshrc | grep "$ALIAS")" ] ; then - echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log - echo " # Alias : TRUE" >> $TMP/backup/conf_log + echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log + echo " # Alias : TRUE" >> $TMP/backup/conf_log + + elif ! [ "$(cat $HOME/.zshrc | grep "$ALIAS")" ] ; then + echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log + echo " # Alias : FALSE" >> $TMP/backup/conf_log fi elif [ "$ACTIVE_SHELL" == "bash" ] ; then if [ "$(cat $HOME/.bashrc | grep "$ALIAS")" ] ; then echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log echo " # Alias : TRUE" >> $TMP/backup/conf_log + + elif ! [ "$(cat $HOME/.bashrc | grep "$ALIAS")" ] ; then + echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log + echo " # Alias : FALSE" >> $TMP/backup/conf_log fi elif [ "$ACTIVE_SHELL" == "fish" ] ; then if [ "$(cat $HOME/.config/fish/config.fish | grep "source $HOME/.config/fish/$ALIAS.fish")" ] ; then echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log echo " # Alias : TRUE" >> $TMP/backup/conf_log + + elif ! [ "$(cat $HOME/.config/fish/config.fish | grep "source $HOME/.config/fish/$ALIAS.fish")" ] ; then + echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log + echo " # Alias : FALSE" >> $TMP/backup/conf_log fi else @@ -417,10 +429,10 @@ backup_logger() { echo >> $TMP/backup/conf_log echo "### $SCRIPT_FILE_NAME VARIABLES ###" >> $TMP/backup/conf_log echo >> $TMP/backup/conf_log - echo "INSTALL_PATH=$INSTALL_PATH" >> $TMP/backup/conf_log - echo "SCRIPT_PATH=$SCRIPT_PATH" >> $TMP/backup/conf_log - echo "LAUNCHER_PATH=$LAUNCHER_PATH" >> $TMP/backup/conf_log - echo "APP_CONFIG_PATH=$APP_CONFIG_PATH" >> $TMP/backup/conf_log + echo "INSTALL_PATH = $INSTALL_PATH" >> $TMP/backup/conf_log + echo "SCRIPT_PATH = $SCRIPT_PATH" >> $TMP/backup/conf_log + echo "LAUNCHER_PATH = $LAUNCHER_PATH" >> $TMP/backup/conf_log + echo "APP_CONFIG_PATH = $APP_CONFIG_PATH" >> $TMP/backup/conf_log echo >> $TMP/backup/conf_log } @@ -448,7 +460,7 @@ script_backup() { pack_backup else - echo -e " ${YEL}Nothing to back up...${CRS}" + echo -e "\n ${YEL}Nothing to back up...${CRS}\n" fi } @@ -460,7 +472,7 @@ app_backup() { pack_backup else - echo -e " ${YEL}Nothing to back up...${CRS}" + echo -e "\n ${YEL}Nothing to back up...${CRS}\n" fi } @@ -472,7 +484,7 @@ config_backup() { pack_backup else - echo -e " ${YEL}Nothing to back up...${CRS}" + echo -e "\n ${YEL}Nothing to back up...${CRS}\n" fi } @@ -484,7 +496,7 @@ full_backup() { pack_backup else - echo -e " ${YEL}Nothing to back up...${CRS}" + echo -e "\n ${YEL}Nothing to back up...${CRS}\n" fi } @@ -611,8 +623,6 @@ select_backup() { BACKUP_COMPRESSION=$(file $RESTORE_SOURCE | awk '{print $2}') decompress_backup - configure_restore - restore_backup } decompress_backup() { @@ -630,64 +640,149 @@ decompress_backup() { tar -xzf $APP_NAME.*.backup_*.tar.gz rm $APP_NAME.*.backup_*.tar.gz - elif [ "$BACKUP_COMPRESSION" == "zip" ] ; then - unzip $APP_NAME.*.backup_*.tar.zip + elif [ "$BACKUP_COMPRESSION" == "Zip" ] ; then + unzip $APP_NAME.*.backup_*.tar.zip > /dev/null 2>&1 tar -xf $APP_NAME.*.backup_*.tar - rm $APP_NAME.*.backup_*.tar.zip $APP_NAME.*.backup_*.tar.zip + rm $APP_NAME.*.backup_*.tar.zip $APP_NAME.*.backup_*.tar else echo -e " ${YEL}TBA...${CRS}\n" ####################################################################### fi + + configure_restore } configure_restore() { echo -e " - ${CRS}Analysing ${CYN}$BACKUP_TYPE${CRS} backup content...${CRS}\n" - RESTORABLE=("$APP_NAME.$FILE_EXTENSION" "$SCRIPT_FILE_NAME" "$AUTO_SCRIPT_FILE_NAME" "$APP_NAME.desktop" "$APP_CONFIG_FOLDER") + RESTORABLE=("$APP_NAME.$FILE_EXTENSION" "$SCRIPT_FILE_NAME" "$APP_NAME.desktop" "$APP_CONFIG_FOLDER") for RESTORE_ITEM in ${RESTORABLE[@]} ; do if [ -d "$RESTORE_ITEM" ] ; then if [ -d "$APP_CONFIG_PATH" ] ; then - echo " - Folder : $RESTORE_ITEM | already present" >> $TMP/restore_conf - echo $RESTORE_ITEM >> $TMP/restore_check + echo "APP_CONFIG_PATH=\"$APP_CONFIG_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check else - echo " - Folder : $RESTORE_ITEM | not present" >> $TMP/restore_conf + echo "APP_CONFIG_PATH=\"$APP_CONFIG_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check + echo "APP_CONFIG_PATH=\"$APP_CONFIG_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_diff fi elif [ -f "$RESTORE_ITEM" ] ; then if [[ -f "$INSTALL_PATH/$RESTORE_ITEM" || -f "$SCRIPT_PATH/$RESTORE_ITEM" || -f "$LAUNCHER_PATH/$RESTORE_ITEM" ]] ; then - echo " - File : $RESTORE_ITEM | already present" >> $TMP/restore_conf - echo "\"$RESTORE_ITEM\"" >> $TMP/restore_check + if [ "$RESTORE_ITEM" == "$APP_NAME.$FILE_EXTENSION" ] ; then + echo "INSTALL_PATH=\"$INSTALL_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check + + elif [[ "$RESTORE_ITEM" == "$SCRIPT_FILE_NAME" || "$RESTORE_ITEM" == "$AUTO_SCRIPT_FILE_NAME" ]] ; then + echo "SCRIPT_PATH=\"$SCRIPT_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check + + elif [ "$RESTORE_ITEM" == "$APP_NAME.desktop" ] ; then + echo "LAUNCHER_PATH=\"$LAUNCHER_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check + fi else - echo " - File : $RESTORE_ITEM | not present" >> $TMP/restore_conf + if [ "$RESTORE_ITEM" == "$APP_NAME.$FILE_EXTENSION" ] ; then + echo "INSTALL_PATH=\"$INSTALL_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check + echo "INSTALL_PATH=\"$INSTALL_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_diff + + elif [[ "$RESTORE_ITEM" == "$SCRIPT_FILE_NAME" || "$RESTORE_ITEM" == "$AUTO_SCRIPT_FILE_NAME" ]] ; then + echo "SCRIPT_PATH=\"$SCRIPT_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check + echo "SCRIPT_PATH=\"$SCRIPT_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_diff + + elif [ "$RESTORE_ITEM" == "$APP_NAME.desktop" ] ; then + echo "LAUNCHER_PATH=\"$LAUNCHER_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check + echo "LAUNCHER_PATH=\"$LAUNCHER_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_diff + fi fi fi done - RESTORE_PATH=("INSTALL_PATH" "SCRIPT_PATH" "LAUNCHER_PATH" "APP_CONFIG_PATH") - ################################################################################################# - for CHANGED in ${RESTORE_PATH[@]} ; do - LOCAL_PATH=$(echo \$$CHANGED) - echo $LOCAL_PATH - if [ "$(cat conf_log | grep $RESTORE_PATH | awk -F '=' '{print $2}')" == "$LOCAL_PATH" ] ; then - echo $(cat conf_log | grep "${CHANGED}_PATH") >> $TMP/restore_path_change - echo "${CHANGED}_PATH" - - else - echo "BAD" - echo $(cat conf_log | grep "${CHANGED}_PATH") + echo -e " - ${CRS}Configuring ${CYN}$BACKUP_TYPE${CRS} restoration process...${CRS}\n" + i=1 + RESTORE_PATH=$(cat $TMP/restore_check | awk -F'=' '{print $1}') + + for PATH_VARIABLE in ${RESTORE_PATH[@]} ; do + PATH_CHECK=$(cat $TMP/restore_diff 2> /dev/null| grep "$PATH_VARIABLE" | awk '{print $1}' | awk -F'=' '{print $2}' | tr -d "\"") + + if [[ "$PATH_CHECK" == "$INSTALL_PATH" || "$PATH_CHECK" == "$SCRIPT_PATH" || "$PATH_CHECK" == "$LAUNCHER_PATH" || "$PATH_CHECK" == "$APP_CONFIG_PATH" ]] ; then + echo " $i - DEFAULT_$PATH_VARIABLE = $PATH_CHECK" >> $TMP/restore_path_change + echo " BACKUP_$(cat conf_log | grep "$PATH_VARIABLE")" >> $TMP/restore_path_change + echo >> $TMP/restore_path_change + i=$(($i+1)) fi done + + if [ -f "$TMP/restore_path_change" ] ; then + echo -e " ${YEL}Path change detected!\n${CRS}" + echo -e "$(cat $TMP/restore_path_change)\n" + + while true ; do + read -p " Which path to use? (DEFAULT/backup) : " PATH_OVERWRITE + echo + + if [[ "$PATH_OVERWRITE" == "" || "$PATH_OVERWRITE" == "default" || "$PATH_OVERWRITE" == "DEFAULT" ]] ; then + break + + elif [[ "$PATH_OVERWRITE" == "backup" || "$PATH_OVERWRITE" == "BACKUP" ]] ; then + TARGET_TO_CHANGE=$(cat $TMP/restore_diff | awk '{print $1}' | awk -F'=' '{print $1}') + + for TARGET_VARIABLE in ${TARGET_TO_CHANGE[@]} ; do + PATH_TO_CHANGE=$(cat conf_log | grep "$TARGET_VARIABLE" | awk -F'=' '{print $2}' | tr -d " ") + + if [ "$TARGET_VARIABLE" == "INSTALL_PATH" ] ; then + INSTALL_PATH=$PATH_TO_CHANGE + + elif [ "$TARGET_VARIABLE" == "SCRIPT_PATH" ] ; then + SCRIPT_PATH=$PATH_TO_CHANGE + + elif [ "$TARGET_VARIABLE" == "LAUNCHER_PATH" ] ; then + LAUNCHER_PATH=$PATH_TO_CHANGE + + elif [ "$TARGET_VARIABLE" == "APP_CONFIG_PATH" ] ; then + APP_CONFIG_PATH=$PATH_TO_CHANGE + fi + done + break + + else + echo -e " ${YEL}Invalid response!${CRS}\n" + fi + done + fi + + for RESTORE_ITEM in ${RESTORABLE[@]} ; do + if [ -d "$RESTORE_ITEM" ] ; then + if [ -d "$APP_CONFIG_PATH" ] ; then + echo -e " - Folder : $RESTORE_ITEM \t| ${RED}directory existing${CRS}" >> $TMP/restore_content + + else + echo -e " - Folder : $RESTORE_ITEM \t| ${GRN}not present${CRS}" >> $TMP/restore_content + fi + + elif [ -f "$RESTORE_ITEM" ] ; then + if [[ -f "$INSTALL_PATH/$RESTORE_ITEM" || -f "$SCRIPT_PATH/$RESTORE_ITEM" || -f "$LAUNCHER_PATH/$RESTORE_ITEM" ]] ; then + echo -e " - File : $RESTORE_ITEM \t| ${RED}file existing${CRS}" >> $TMP/restore_content + + else + echo -e " - File : $RESTORE_ITEM \t| ${GRN}not present${CRS}" >> $TMP/restore_content + fi + fi + done + + restore_backup } restore_backup() { - echo -e " ${LCY}Backup Content Summary${CRS}\n" - echo -e "$(cat $TMP/restore_conf)\n" + echo -e "\t${LCY}###### Restore Summary ######${CRS}\n" + echo -e " ${MGT}Destination${CRS}" + echo -e " - Install path \t: ${CYN}$INSTALL_PATH${CRS}" + echo -e " - Script path \t: ${CYN}$SCRIPT_PATH${CRS}" + echo -e " - Launcher path \t: ${CYN}$LAUNCHER_PATH${CRS}" + echo -e " - $APP_NAME config \t: ${CYN}$APP_CONFIG_PATH${CRS}\n" + echo -e " ${MGT}Backup content${CRS}" + echo -e "$(cat $TMP/restore_content)\n" if [ -f "$TMP/restore_check" ] ; then - echo -e " ${RED}WARNING: Some items are existing on your system!${CRS}\n" + echo -e " ${RED}WARNING: Some items are existent on your system!${CRS}\n" while true ; do read -p " Overwrite existing? (y/N) : " RESTORE_OVERWRITE @@ -697,10 +792,28 @@ restore_backup() { break elif [[ "$RESTORE_OVERWRITE" == "y" || "$RESTORE_OVERWRITE" == "Y" ]] ; then - EXISTING=$(cat $TMP/restore_check) + echo -e "\n - ${CRS}Restoring ${CYN}$BACKUP_TYPE${CRS} backup files...${CRS}\n" + EXISTING=$(cat $TMP/restore_check | awk -F'=' '{print $1}') for REPLACE in ${EXISTING[@]} ; do - rm -rf $REPLACE + if [ "$REPLACE" == "INSTALL_PATH" ] ; then + rm -rf $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION + chmod +x $APP_NAME.$FILE_EXTENSION + mv $APP_NAME.$FILE_EXTENSION $INSTALL_PATH + + elif [ "$REPLACE" == "SCRIPT_PATH" ] ; then + rm -rf $SCRIPT_PATH/$SCRIPT_FILE_NAME $SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME + chmod +x *.sh + mv *.sh $SCRIPT_PATH + + elif [ "$REPLACE" == "LAUNCHER_PATH" ] ; then + rm -rf $LAUNCHER_PATH/$APP_NAME.desktop + mv $APP_NAME.desktop $LAUNCHER_PATH + + elif [ "$REPLACE" == "APP_CONFIG_PATH" ] ; then + rm -rf $APP_CONFIG_PATH + mv $APP_CONFIG_FOLDER $HOME/.config + fi done fi done @@ -712,11 +825,34 @@ restore_backup() { read -p " Proceed with changes? (Y/n) : " RESTORE_CONFIRM if [[ "$RESTORE_CONFIRM" == "" || "$RESTORE_CONFIRM" == "y" || "$RESTORE_CONFIRM" == "Y" ]] ; then - echo -e " - ${CRS}Copying ${CYN}$BACKUP_TYPE${CRS} backup files...${CRS}\n" + echo -e " - ${CRS}Restoring ${CYN}$BACKUP_TYPE${CRS} backup files...${CRS}\n" + + for REPLACE in ${EXISTING[@]} ; do + if [ "$REPLACE" == "INSTALL_PATH" ] ; then + rm -rf $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION + chmod +x $APP_NAME.$FILE_EXTENSION + mv $APP_NAME.$FILE_EXTENSION $INSTALL_PATH + + elif [ "$REPLACE" == "SCRIPT_PATH" ] ; then + rm -rf $SCRIPT_PATH/$SCRIPT_FILE_NAME $SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME + chmod +x *.sh + mv *.sh $SCRIPT_PATH + + elif [ "$REPLACE" == "LAUNCHER_PATH" ] ; then + rm -rf $LAUNCHER_PATH/$APP_NAME.desktop + mv $APP_NAME.desktop $LAUNCHER_PATH + + elif [ "$REPLACE" == "APP_CONFIG_PATH" ] ; then + rm -rf $APP_CONFIG_PATH + mv $APP_CONFIG_FOLDER $HOME/.config + fi elif [[ "$RESTORE_CONFIRM" == "n" || "$RESTORE_CONFIRM" == "N" ]] ; then echo -e "\n ${RED}Cancelled!${CRS}\n" break + + else + echo -e "\n ${YEL}Invalid response!${CRS}\n" fi done fi From 7f1042927cb05e736918fa83cac1189dde31b1fa Mon Sep 17 00:00:00 2001 From: Fr4nz D13trich Date: Sun, 18 Jan 2026 00:47:33 +0100 Subject: [PATCH 16/17] loop finished --- helium_helper.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/helium_helper.sh b/helium_helper.sh index dfe100c..726656b 100755 --- a/helium_helper.sh +++ b/helium_helper.sh @@ -771,7 +771,7 @@ configure_restore() { restore_backup } -restore_backup() { +restore_backup() { ############################################### echo -e "\t${LCY}###### Restore Summary ######${CRS}\n" echo -e " ${MGT}Destination${CRS}" echo -e " - Install path \t: ${CYN}$INSTALL_PATH${CRS}" @@ -846,6 +846,7 @@ restore_backup() { rm -rf $APP_CONFIG_PATH mv $APP_CONFIG_FOLDER $HOME/.config fi + done elif [[ "$RESTORE_CONFIRM" == "n" || "$RESTORE_CONFIRM" == "N" ]] ; then echo -e "\n ${RED}Cancelled!${CRS}\n" @@ -1223,8 +1224,6 @@ done ## ENVIRONMENT CHECK dependency_check arch_check - -## CHECK LOCAL INSTALL local_check ## UPDATE From 3cbc1c2ad672b7f22a72e8d2de01e924243f79e9 Mon Sep 17 00:00:00 2001 From: Fr4nz D13trich Date: Fri, 23 Jan 2026 22:52:22 +0100 Subject: [PATCH 17/17] re init --- .gitignore | 0 README.md | 0 assets/icon/helium.png | Bin assets/launcher/helium.desktop.template | 0 assets/workflow/merge.yml | 0 devdoc.md | 0 helium_helper.sh | 10 ++++++---- 7 files changed, 6 insertions(+), 4 deletions(-) mode change 100644 => 100755 .gitignore mode change 100644 => 100755 README.md mode change 100644 => 100755 assets/icon/helium.png mode change 100644 => 100755 assets/launcher/helium.desktop.template mode change 100644 => 100755 assets/workflow/merge.yml mode change 100644 => 100755 devdoc.md diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/assets/icon/helium.png b/assets/icon/helium.png old mode 100644 new mode 100755 diff --git a/assets/launcher/helium.desktop.template b/assets/launcher/helium.desktop.template old mode 100644 new mode 100755 diff --git a/assets/workflow/merge.yml b/assets/workflow/merge.yml old mode 100644 new mode 100755 diff --git a/devdoc.md b/devdoc.md old mode 100644 new mode 100755 diff --git a/helium_helper.sh b/helium_helper.sh index 726656b..32c5bf8 100755 --- a/helium_helper.sh +++ b/helium_helper.sh @@ -37,8 +37,8 @@ ASSET_PATH=$INSTALL_PATH/assets BACKUP_PATH=$ASSET_PATH/backup LOG_PATH=$ASSET_PATH/logs LOG=$LOG_PATH/log -LAUNCHER_PATH=$HOME/.local/share/applications -SCRIPT_PATH=$HOME/.local/bin +LAUNCHER_PATH=$HOME/.local/share/applications1 +SCRIPT_PATH=$HOME/.local/bin1 ## REMOTE LOCATIONS REMOTE_REPO_BRANCH="main" @@ -295,18 +295,20 @@ update_application() { exit elif [ -z "$LOCAL_VERSION" ] ; then - echo -e "\n ${RED}Empty version tag from ${CYN}local AppImage${RED}! Can't compare, exiting...${CRS}\n" + echo -e "\n ${RED}Empty version tag from ${CYN}local $FILE_EXTENSION${RED}! Can't compare, exiting...${CRS}\n" exit fi ### COMPARE LOCAL & REMOTE VERSION LOCAL_VERSION_NUM=$(echo $LOCAL_VERSION | tr -d .) APP_SOURCE_VERSION_NUM=$(echo $APP_SOURCE_VERSION | tr -d .) + APP_SOURCE_VERSION_NUM=$(echo "1.$APP_SOURCE_VERSION_NUM") + LOCAL_VERSION_NUM=$(echo "1.$LOCAL_VERSION_NUM") if [ "$APP_SOURCE_VERSION" == "$LOCAL_VERSION" ] ; then echo -e "\n ${GRN}$APP_NAME_LONG is already up-to-date!${CRS}\n" - elif [ "$APP_SOURCE_VERSION_NUM" -gt "$LOCAL_VERSION_NUM" ] ; then + elif [ $(echo "$APP_SOURCE_VERSION_NUM > $LOCAL_VERSION_NUM" | bc -l) -eq 1 ] ; then echo -e "\n ${LCY}$APP_NAME_LONG is updatable!${CRS}\n" app_version_info