From c49679dd35bd6beadcd2869c89393f10d50ede96 Mon Sep 17 00:00:00 2001 From: Fr4nzD13trich Date: Fri, 2 Jan 2026 19:15:14 +0100 Subject: [PATCH] Config Backup added; FISH alias added; FISH alias removal added --- helium_helper.sh | 42 +++++++--------------- helium_launcher_update.sh | 73 ++++++++++++++++++++++----------------- 2 files changed, 53 insertions(+), 62 deletions(-) diff --git a/helium_helper.sh b/helium_helper.sh index d6687c9..300a1e4 100755 --- a/helium_helper.sh +++ b/helium_helper.sh @@ -48,7 +48,6 @@ cmd_query() { if ! command -v $PACKAGE > /dev/null 2>&1 ; then echo " - $PACKAGE" >> $TMP/missingDeps - fi } @@ -65,7 +64,6 @@ dependency_check () { MISSING=$(cat $TMP/missingDeps) echo -e "\n ${RED}Following dependencies are missing :\n\n${CRS}$MISSING\n\n ${CYN}Please install and re-run script !${CRS}" exit_clean - fi } @@ -98,7 +96,6 @@ local_check() { echo -e "\n ${RED}$APP_NAME_LONG directory found but no executable named ${CYN}$APP_NAME.$FILE_EXTENSION${RED}!${CRS}" install_helium exit - fi } @@ -108,7 +105,6 @@ install_helium() { echo -e "\n ${YEL}$APP_NAME_LONG AppImage found! Trying to update...${CRS}" update_helium exit - fi while true ; do @@ -132,7 +128,6 @@ install_helium() { else echo -e " ${YEL}Invalid response!${CRS}\n" - fi done @@ -180,7 +175,6 @@ add_launcher() { else echo -e " ${YEL}Invalid response!${CRS}\n" - fi done @@ -189,7 +183,6 @@ add_launcher() { echo -e "\n ${RED}$APP_NAME_LONG AppImage not found! Can't add launcher...${CRS}" install_helium exit - fi } @@ -234,7 +227,6 @@ add_alias() { else echo -e "\n ${LCY}$ACTIVE_SHELL ${RED}not yet supported!${CRS}\n" echo -e " ${LCY}Working implementation are available for bash, zsh & fish!${CRS}\n" - fi } @@ -251,7 +243,6 @@ update_helium() { elif [ -z "$LOCAL_VERSION" ] ; then echo -e "\n ${RED}Empty version tag from ${CYN}local AppImage${RED}! Can't compare, exiting...${CRS}" exit - fi ### COMPARE LOCAL & REMOTE VERSION @@ -279,9 +270,16 @@ update_helium() { if [ -f "$BACKUP_PATH/$APP_NAME.old" ] ; then rm $BACKUP_PATH/$APP_NAME.old fi + if [ -d "$APP_CONFIG_PATH" ] ; then + if [ -f "$BACKUP_PATH/$APP_NAME.config.tar" ] ; then + rm $BACKUP_PATH/$APP_NAME.config.tar + fi + tar -cf $BACKUP_PATH/$APP_NAME.config.tar $APP_CONFIG_PATH > /dev/null 2>&1 + fi mv $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION $BACKUP_PATH/$APP_NAME.old mv $TMP/$APP_SOURCE_FILENAME $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION cp $LAUNCHER_PATH/$APP_NAME.desktop $BACKUP_PATH/$APP_NAME.desktop.old + chmod -x $BACKUP_PATH/*.sh.old $BACKUP_PATH/$APP_NAME.old sed -i "s|X-AppImage-Version=.*|X-AppImage-Version=$($INSTALL_PATH/$APP_NAME.$FILE_EXTENSION --version | awk '{print $2}')|" $LAUNCHER_PATH/$APP_NAME.desktop echo -e "\n ${GRN}$APP_NAME_LONG is up-to-date !${CRS}\n" break @@ -292,9 +290,7 @@ update_helium() { else echo -e " ${YEL}Invalid response!${CRS}\n" - fi - done else @@ -303,7 +299,6 @@ update_helium() { echo -e " ${CYN}$APP_SOURCE Version :\t${CRS}${APP_SOURCE_VERSION}\n" echo -e " ${RED}Update failed... Exiting...${CRS}\n" exit - fi } @@ -316,7 +311,6 @@ auto_update() { else echo -e "\n ${RED}Not implemented yet...${CRS}" - fi } @@ -330,9 +324,10 @@ remove_helium() { if [[ "$CONFIRM_REMOVE" == "" || "$CONFIRM_REMOVE" == "y" || "$CONFIRM_REMOVE" == "Y" ]] ; then REMOVABLE=("$INSTALL_PATH" "$LAUNCHER_PATH/$APP_NAME.desktop" "$SCRIPT_PATH/$SCRIPT_FILE_NAME" "$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME") echo + for RM_PATH in "${REMOVABLE[@]}" ; do if [[ -f "$RM_PATH" || -d "$RM_PATH" ]] ; then - echo -e " ${RED}Removing $RM_PATH ...${CRS}" + echo -e " ${YEL}Removing ${CYN}$RM_PATH ${YEL}...${CRS}" rm -rf "$RM_PATH" fi done @@ -342,19 +337,21 @@ remove_helium() { if [ "$ACTIVE_SHELL" == "zsh" ] ; then if [ "$(cat $HOME/.zshrc | grep "$ALIAS")" ] ; then sed -i "/$ALIAS/d" $HOME/.zshrc + echo -e "\n ${CYN}$ACTIVE_SHELL ${YEL}alias removed ... ${CRS}" fi elif [ "$ACTIVE_SHELL" == "bash" ] ; then if [ "$(cat $HOME/.bashrc | grep "$ALIAS")" ] ; then sed -i "/$ALIAS/d" $HOME/.bashrc + echo -e "\n ${CYN}$ACTIVE_SHELL ${YEL}alias removed ... ${CRS}" fi elif [ "$ACTIVE_SHELL" == "fish" ] ; then if [ "$(cat $HOME/.config/fish/config.fish | grep "source $HOME/.config/fish/$ALIAS.fish")" ] ; then sed -i "/$ALIAS/d" $HOME/.config/fish/config.fish rm $HOME/.config/fish/$ALIAS.fish + echo -e "\n ${CYN}$ACTIVE_SHELL ${YEL}alias removed ... ${CRS}" fi - fi echo -e "\n ${RED}$APP_NAME_LONG removed!${CRS}\n" @@ -366,15 +363,12 @@ remove_helium() { else echo -e " ${YEL}Invalid response!${CRS}\n" - fi - done else echo -e "\n ${RED}Can't remove $APP_NAME_LONG! ${YEL}$INSTALL_PATH ${RED}directory not found...${CRS}" exit - fi } @@ -412,11 +406,8 @@ update_script() { else echo -e " ${YEL}Invalid response!${CRS}\n" - fi - done - fi REMOTE_SCRIPT_VERSION=$(curl -s $REMOTE_SCRIPT_URL | grep -m 1 "SCRIPT_VERSION" | tr -d 'SCRIPT_VERSION="') @@ -429,7 +420,6 @@ update_script() { elif [ -z "$REMOTE_SCRIPT_VERSION" ] ; then echo -e "\n ${RED}Empty version tag from ${CYN}remote script${RED}! Can't compare, exiting...${CRS}" exit - fi ### COMPARE LOCAL & REMOTE VERSION @@ -466,9 +456,7 @@ update_script() { else echo -e " ${YEL}Invalid response!${CRS}\n" - fi - done else @@ -476,7 +464,6 @@ update_script() { echo -e " ${CYN}Local Version :\t${CRS}${SCRIPT_VERSION}" echo -e " ${CYN}Remote Version :\t${CRS}${REMOTE_SCRIPT_VERSION}\n" echo -e " ${RED}Updating script failed...${CRS}\n" - fi } @@ -493,7 +480,6 @@ compare_version() { elif [ -z "$LOCAL_VERSION" ] ; then echo -e "\n ${RED}Empty version tag from ${CYN}local AppImage${RED}! Can't compare, exiting...${CRS}\n" exit - fi ### COMPARE LOCAL & REMOTE VERSION @@ -518,7 +504,6 @@ compare_version() { echo -e " ${CYN}$APP_SOURCE Version :\t${CRS}${APP_SOURCE_VERSION}\n" echo -e " ${RED}Update failed ... Exiting ...${CRS}\n" exit - fi } @@ -548,7 +533,6 @@ help() { exit_clean() { if [ -d "$TMP" ] ; then rm -rf $TMP - fi exit @@ -622,9 +606,7 @@ while getopts ":i,:l,:a,:u,:U,:r,:c,:s,:S,:h" OPTION ; do echo -e "\n${YEL}Option ${RED}$1${YEL} not recognized... Refer to help below!${CRS}" help exit ;; - esac - done ## DEPENDENCY CHECK diff --git a/helium_launcher_update.sh b/helium_launcher_update.sh index 332d100..2b9f81c 100755 --- a/helium_launcher_update.sh +++ b/helium_launcher_update.sh @@ -11,12 +11,13 @@ FILE_EXTENSION="AppImage" APP_SOURCE="GitHub" SCRIPT_NAME="$APP_NAME Launcher Updater" SCRIPT_FILE_NAME="helium_launcher_update.sh" -SCRIPT_VERSION="0.5.7" +SCRIPT_VERSION="0.5.8" DATE=$(date) ## LOCATIONS TMP=/tmp/$APP_NAME INSTALL_PATH=$HOME/.apps/$APP_NAME +APP_CONFIG_PATH=$HOME/.config/net.imput.helium ASSET_PATH=$INSTALL_PATH/assets BACKUP_PATH=$ASSET_PATH/backup LOG_PATH=$ASSET_PATH/logs @@ -56,27 +57,27 @@ dependency_check () { mkdir -p $LOG_PATH echo "########## $APP_NAME_LONG update log ##########" >> $LOG echo >> $LOG - echo "${DATE} | Log created" >> $LOG + echo "$DATE | Log created" >> $LOG fi if [ -f "$TMP/missingDeps" ] ; then MISSING=$(cat $TMP/missingDeps) - echo "${DATE} | Failed to update - missing dependencies : $MISSING" >> $LOG - notify-send -i "$ICON" "Helium Helper" "Update failed! See log for details" + echo "$DATE | Failed to update - missing dependencies : $MISSING" >> $LOG + notify-send --icon="$ICON" --app-name="Helium Helper" "Update failed! See log for details" exit_clean fi if ! [ -d "$INSTALL_PATH" ] ; then mkdir -p $INSTALL_PATH - echo "${DATE} | Failed to update - $APP_NAME installation path not present - But created for logging" >> $LOG - notify-send -i "$ICON" "Helium Helper" "Update failed! See log for details" + echo "$DATE | Failed to update - $APP_NAME installation path not present - But created for logging" >> $LOG + notify-send --icon="$ICON" --app-name="Helium Helper" "Update failed! See log for details" exit elif ! [ -f "$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION" ] ; then - echo "${DATE} | Failed to update - Local $APP_NAME AppImage not found" >> $LOG - notify-send -i "$ICON" "Helium Helper" "Update failed! See log for details" + echo "$DATE | Failed to update - Local $APP_NAME AppImage not found" >> $LOG + notify-send --icon="$ICON" --app-name="Helium Helper" "Update failed! See log for details" exit fi @@ -87,8 +88,8 @@ dependency_check () { update_script() { ### CHECK FOR LOCAL SCRIPT if ! [ -f "$SCRIPT_PATH/$SCRIPT_FILE_NAME" ] ; then - echo "${DATE} | Failed to update script - local file not found" >> $LOG - notify-send -i "$ICON" "Helium Helper" "Script update failed! See log for details" + echo "$DATE | Failed to update script - local file not found" >> $LOG + notify-send --icon="$ICON" --app-name="Helium Helper" "Script update failed! See log for details" exit fi @@ -97,13 +98,13 @@ update_script() { ### CHECK FOR EMPTY VERSION TAGS if [ -z "$SCRIPT_VERSION" ] ; then - echo "${DATE} | Failed to update script - Empty version tag --> local" >> $LOG - notify-send -i "$ICON" "Helium Helper" "Script update failed! See log for details" + echo "$DATE | Failed to update script - Empty version tag --> local" >> $LOG + notify-send --icon="$ICON" --app-name="Helium Helper" "Script update failed! See log for details" exit elif [ -z "$REMOTE_SCRIPT_VERSION" ] ; then - echo "${DATE} | Failed to update script - Empty version tag --> $APP_SOURCE" >> $LOG - notify-send -i "$ICON" "Helium Helper" "Script update failed! See log for details" + echo "$DATE | Failed to update script - Empty version tag --> $APP_SOURCE" >> $LOG + notify-send --icon="$ICON" --app-name="Helium Helper" "Script update failed! See log for details" exit fi @@ -113,7 +114,7 @@ update_script() { REMOTE_SCRIPT_VERSION_NUM=$(echo $REMOTE_SCRIPT_VERSION | tr -d .) if [ "$REMOTE_SCRIPT_VERSION" == "$SCRIPT_VERSION" ] ; then - notify-send -i "$ICON" "Helium Helper" "Script is up-to-date" + notify-send --icon="$ICON" --app-name="Helium Helper" "Script is up-to-date" elif [ "$REMOTE_SCRIPT_VERSION_NUM" -gt "$SCRIPT_VERSION_NUM" ] ; then mv $SCRIPT_PATH/$SCRIPT_FILE_NAME $BACKUP_PATH/$SCRIPT_FILE_NAME.old @@ -121,13 +122,14 @@ update_script() { wget -P $TMP $REMOTE_SCRIPT_URL -q chmod +x $TMP/$SCRIPT_FILE_NAME mv $TMP/$SCRIPT_FILE_NAME $SCRIPT_PATH - echo "${DATE} | Script updated to $REMOTE_SCRIPT_VERSION" >> $LOG - notify-send -i "$ICON" "Helium Helper" "Script updated to $REMOTE_SCRIPT_VERSION" + echo "$DATE | Script updated to version $REMOTE_SCRIPT_VERSION" >> $LOG + notify-send --icon="$ICON" --app-name="Helium Helper" "Script updated to version $REMOTE_SCRIPT_VERSION" else - echo "${DATE} | Failed to update - Malformed version tags" >> $LOG - notify-send -i "$ICON" "Helium Helper" "Script update failed! See log for details\n$REMOTE_SCRIPT_VERSION $SCRIPT_VERSION" - + echo "$DATE | Failed to update - Malformed version tags" >> $LOG + echo "$DATE | Remote Version: $REMOTE_SCRIPT_VERSION" >> $LOG + echo "$DATE | Local Version: $SCRIPT_VERSION" >> $LOG + notify-send --icon="$ICON" --app-name="Helium Helper" "Script update failed! See log for details" fi } @@ -140,13 +142,13 @@ update_helium() { ### CHECK FOR EMPTY VERSION TAGS if [[ -z "$APP_SOURCE_VERSION" ]] ; then - echo "${DATE} | Failed to update - Empty version tag --> $APP_SOURCE" >> $LOG - notify-send -i "$ICON" "Helium Helper" "Browser update failed! See log for details" + echo "$DATE | Failed to update - Empty version tag --> $APP_SOURCE" >> $LOG + notify-send --icon="$ICON" --app-name="Helium Helper" "Browser update failed! See log for details" exit elif [[ -z "$LOCAL_VERSION" ]] ; then - echo "${DATE} | Failed to update - Empty version tag --> LOCAL" >> $LOG - notify-send -i "$ICON" "Helium Helper" "Browser update failed! See log for details" + echo "$DATE | Failed to update - Empty version tag --> LOCAL" >> $LOG + notify-send --icon="$ICON" --app-name="Helium Helper" "Browser update failed! See log for details" exit fi @@ -156,25 +158,32 @@ update_helium() { APP_SOURCE_VERSION_NUM=$(echo $APP_SOURCE_VERSION | tr -d .) if [ "$APP_SOURCE_VERSION" == "$LOCAL_VERSION" ] ; then - notify-send -i "$ICON" "Helium Helper" "Browser is up-to-date" + notify-send --icon="$ICON" --app-name="Helium Helper" "Browser is up-to-date" elif [ "$APP_SOURCE_VERSION_NUM" -gt "$LOCAL_VERSION_NUM" ] ; then mkdir -p $TMP $BACKUP_PATH wget -P $TMP $DOWNLOAD_URL -q --show-progress chmod +x $TMP/$APP_SOURCE_FILENAME - if [ -f "$BACKUP_PATH/$APP_NAME.$FILE_EXTENSION.old" ] ; then - rm $BACKUP_PATH/$APP_NAME.$FILE_EXTENSION.old + if [ -f "$BACKUP_PATH/$APP_NAME.old" ] ; then + rm $BACKUP_PATH/$APP_NAME.old + fi + if [ -d "$APP_CONFIG_PATH" ] ; then + if [ -f "$BACKUP_PATH/$APP_NAME.config_*.tar" ] ; then + rm $BACKUP_PATH/$APP_NAME.config_*.tar + fi + tar -cf $BACKUP_PATH/$APP_NAME.config_$(date).tar $APP_CONFIG_PATH > /dev/null 2>&1 fi mv $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION $BACKUP_PATH/$APP_NAME.$FILE_EXTENSION.old mv $TMP/$APP_SOURCE_FILENAME $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION cp $LAUNCHER_PATH/$APP_NAME.desktop $BACKUP_PATH/$APP_NAME.desktop.old + chmod -x $BACKUP_PATH/*.sh.old $BACKUP_PATH/$APP_NAME.old sed -i "s|X-AppImage-Version=.*|X-AppImage-Version=$($INSTALL_PATH/$APP_NAME.$FILE_EXTENSION --version | awk '{print $2}')|" $LAUNCHER_PATH/$APP_NAME.desktop - echo "${DATE} | $APP_NAME updated to ${APP_SOURCE_VERSION}" >> $LOG - notify-send -i "$ICON" "Helium Helper" "Browser updated to $APP_SOURCE_VERSION" + echo "$DATE | $APP_NAME updated to version ${APP_SOURCE_VERSION}" >> $LOG + notify-send --icon="$ICON" --app-name="Helium Helper" "Browser updated to version $APP_SOURCE_VERSION" else - echo "${DATE} | Failed to update - Version tags malformed" >> $LOG - notify-send -i "$ICON" "Helium Helper" "Browser update failed! See log for details" + echo "$DATE | Failed to update - Version tags malformed" >> $LOG + notify-send --icon="$ICON" --app-name="Helium Helper" "Browser update failed! See log for details" exit fi @@ -193,7 +202,7 @@ show_log() { xdg-open $LOG else - notify-send -i "$ICON" "Helium Helper" "No log created yet" + notify-send --icon="$ICON" --app-name="Helium Helper" "No log created yet" fi }