Options added; Structural changes

This commit is contained in:
Fr4nz D13trich 2025-12-20 22:35:34 +01:00
parent 46d2c3e91a
commit 73d66859d6

View file

@ -2,6 +2,8 @@
# HELIUM BOWSER INSTALL & UPDATE SCRIPT ---> INTERACTIVE
########## PREREQUISITES ###########
## SOME COLOR
CYN="\e[0;36m"
YEL="\e[0;33m"
@ -16,15 +18,17 @@ INSTALL_PATH=$HOME/.apps/Helium
#PROFILE=$HOME/.profile ### for AUTO UPDATE
## GLOBAL VARIABLES
SCRIPT_NAME="Helium Helper"
SCRIPT_VERSION="0.4"
SCRIPT_NAME="Helium Helper Script"
SCRIPT_VERSION="0.4.1"
DEPENDENCIES=("curl" "wget")
MISSING=$(cat $TMP/missingDeps 2>/dev/null)
GIT_VERSION=$(curl -s https://api.github.com/repos/imputnet/helium-linux/releases/latest | grep "tag_name" | tr -d \", | awk '{print $2}')
## FUNCTIONS
########## FUNCTIONS ###########
### DEPENDENCIES
dependency_check() {
cmd_query() {
local PACKAGE="$1"
if command -v "$PACKAGE" >/dev/null 2>&1 ; then
@ -33,12 +37,57 @@ dependency_check() {
else
echo "$PACKAGE" >> $TMP/missingDeps
fi
}
for PACKAGE in "${DEPENDENCIES[@]}" ; do
cmd_query "$PACKAGE"
done
if ! [ "$MISSING" ] ; then
:
else
echo -e "\n ${RED}Following dependencies are missing :\n\n${YEL}$MISSING\n\n ${CYN}Please install and re-run script!${CRS}"
rm $TMP/missingDeps
exit 1
fi
}
### CHECK LOCAL INSTALL
local_check() {
if ! [ -d "$INSTALL_PATH" ] ; then
echo -e "\n ${RED}Helium directory not found!${CRS}"
install_helium
exit 1
elif ! [ -f "$INSTALL_PATH/helium-browser.AppImage" ] ; then
echo -e "\n ${RED}Helium directory found but no executable named ${CYN}helium-browser.AppImage${RED}!${CRS}"
install_helium
exit 1
else
:
fi
}
### INSTALL
install_helium() {
if [ -f "$INSTALL_PATH/helium-browser.AppImage" ] ; then
echo -e "\n ${CYN}Helium AppImage found! Trying to update...${CRS}"
update_helium
exit 1
else
:
fi
while true ; do
read -p " Download and install Helium from GitHub? (Y/n) : " CONFIRM_INSTALL
@ -49,16 +98,16 @@ install_helium() {
chmod +x $TMP/$GIT_FILENAME
mkdir -p $INSTALL_PATH
mv $TMP/$GIT_FILENAME $INSTALL_PATH/helium-browser.AppImage
echo -e "\n ${GRN}Helium is installed !${CRS}\n"
echo -e "\n ${GRN}Helium is installed!${CRS}\n"
rm -rf $TMP
exit 0
elif [[ "$CONFIRM_INSTALL" == "n" || "$CONFIRM_INSTALL" == "N" ]] ; then
echo -e "\n ${RED}Installation cancelled !${CRS}\n"
echo -e "\n ${RED}Installation cancelled!${CRS}\n"
exit 1
else
echo -e " ${YEL}Invalid response !${CRS}\n"
echo -e " ${YEL}Invalid response!${CRS}\n"
fi
@ -67,6 +116,33 @@ install_helium() {
### UPDATE
update_helium() {
LOCAL_VERSION=$($INSTALL_PATH/helium-browser.AppImage --version | awk '{print $2}')
### CHECK FOR EMPTY VERSION TAGS
if [ -z "$GIT_VERSION" ] ; then
echo -e "\n ${RED}Empty version tag from ${CYN}GitHub${RED}! Can't compare, exiting...${CRS}"
exit 1
elif [ -z "$LOCAL_VERSION" ] ; then
echo -e "\n ${RED}Empty version tag from ${CYN}local AppImage${RED}! Can't compare, exiting...${CRS}"
exit 1
else
:
fi
### COMPARE LOCAL & REMOTE VERSION
LOCAL_VERSION_NUM=$(echo $LOCAL_VERSION | tr -d .)
GIT_VERSION_NUM=$(echo $GIT_VERSION | tr -d .)
if [ "$GIT_VERSION" == "$LOCAL_VERSION" ] ; then
echo -e "\n ${GRN}Helium is already up-to-date!${CRS}\n"
elif [ "$GIT_VERSION_NUM" -gt "$LOCAL_VERSION_NUM" ] ; then
echo -e "\n ${RED}Helium is updatable!${CRS}\n"
echo -e " ${CYN}Local Version :\t${CRS}${LOCAL_VERSION}"
echo -e " ${CYN}GitHub Version :\t${CRS}${GIT_VERSION}\n"
while true ; do
read -p " Download and update Helium from GitHub? (Y/n) : " CONFIRM
@ -83,110 +159,132 @@ update_helium() {
break
elif [[ "$CONFIRM" == "n" || "$CONFIRM" == "N" ]] ; then
echo -e "\n ${RED}Update cancelled !${CRS}\n"
echo -e "\n ${RED}Update cancelled!${CRS}\n"
exit 1
else
echo -e " ${YEL}Invalid response !${CRS}\n"
echo -e " ${YEL}Invalid response!${CRS}\n"
fi
done
}
### VERSION
version() {
echo -e " ${CYN}Script Version :\t${GRN}${SCRIPT_VERSION}${CRS}"
}
### HELP
help() {
echo
echo -e "${CYN}${SCRIPT_NAME}${CRS}"
echo
echo -e "Description of scripts purpose and/or function"
echo
echo -e "Syntax: script_name.sh [-h|-i|-V|-v]"
echo
echo -e "Options:"
echo
echo -e "\t-h\tPrint this help page."
echo -e "\t-i\tInstall something."
echo -e "\t-V\tShow script version."
echo -e "\t-v\tVerbose mode."
echo
}
########## MAIN ##########
## DEPENDENCY CHECK
for PACKAGE in "${DEPENDENCIES[@]}" ; do
dependency_check "$PACKAGE"
done
if ! [ "$MISSING" ] ; then
:
else
echo -e "\n ${RED}Following dependencies are missing :\n\n${YEL}$MISSING\n\n ${CYN}Please install and re-run script !${CRS}"
rm $TMP/missingDeps
exit 1
fi
## CHECK FOR LOCAL INSTALL
if ! [ -d "$INSTALL_PATH" ] ; then
echo -e "\n ${RED}Helium directory not found !${CRS}"
install_helium
elif ! [ -f "$INSTALL_PATH/helium-browser.AppImage" ] ; then
echo -e "\n ${RED}Helium directory found but no executable named ${CYN}helium-browser.AppImage ${RED}!${CRS}"
install_helium
else
:
fi
## UPDATE
LOCAL_VERSION=$($INSTALL_PATH/helium-browser.AppImage --version | awk '{print $2}')
### CHECK FOR EMPTY VERSION TAGS
if [ -z "$GIT_VERSION" ] ; then
echo -e "\n ${RED}Empty version tag from ${CYN}GitHub ${RED}! Can't compare, exiting ...${CRS}"
exit 1
elif [ -z "$LOCAL_VERSION" ] ; then
echo -e "\n ${RED}Empty version tag from ${CYN}local AppImage ${RED}! Can't compare, exiting ...${CRS}"
exit 1
else
:
fi
### COMPARE LOCAL & REMOTE VERSION
LOCAL_VERSION_NUM=$(echo $LOCAL_VERSION | tr -d .)
GIT_VERSION_NUM=$(echo $GIT_VERSION | tr -d .)
if [ "$GIT_VERSION" == "$LOCAL_VERSION" ] ; then
echo -e "\n ${GRN}Helium is up-to-date !${CRS}\n"
elif [ "$GIT_VERSION_NUM" -gt "$LOCAL_VERSION_NUM" ] ; then
echo -e "\n ${RED}Helium is updatable !${CRS}\n"
else
echo -e "\n ${RED}Version tags malformed or you are using a Beta version!${CRS}\n"
echo -e " ${CYN}Local Version :\t${CRS}${LOCAL_VERSION}"
echo -e " ${CYN}GitHub Version :\t${CRS}${GIT_VERSION}\n"
update_helium
echo -e " ${RED}Update failed... Exiting...${CRS}\n"
exit 1
else
echo -e "\n ${RED}Version tags malformed or you are using a Beta version !${CRS}\n"
fi
}
### SCRIPT VERSION
script_version() {
echo -e "\n ${CYN}Helium Helper Script Version : ${GRN}${SCRIPT_VERSION}${CRS}\n"
exit 0
}
### COMPARE VERSION
compare_version() {
LOCAL_VERSION=$($INSTALL_PATH/helium-browser.AppImage --version | awk '{print $2}')
### CHECK FOR EMPTY VERSION TAGS
if [ -z "$GIT_VERSION" ] ; then
echo -e "\n ${RED}Empty version tag from ${CYN}GitHub${RED}! Can't compare, exiting...${CRS}"
exit 1
elif [ -z "$LOCAL_VERSION" ] ; then
echo -e "\n ${RED}Empty version tag from ${CYN}local AppImage${RED}! Can't compare, exiting...${CRS}"
exit 1
else
:
fi
### COMPARE LOCAL & REMOTE VERSION
LOCAL_VERSION_NUM=$(echo $LOCAL_VERSION | tr -d .)
GIT_VERSION_NUM=$(echo $GIT_VERSION | tr -d .)
if [ "$GIT_VERSION" == "$LOCAL_VERSION" ] ; then
echo -e "\n ${GRN}Helium is up-to-date!${CRS}\n"
echo -e " ${CYN}Local Version :\t${CRS}${LOCAL_VERSION}"
echo -e " ${CYN}GitHub Version :\t${CRS}${GIT_VERSION}\n"
elif [ "$GIT_VERSION_NUM" -gt "$LOCAL_VERSION_NUM" ] ; then
echo -e "\n ${YEL}Helium is updatable!${CRS}\n"
echo -e " ${CYN}Local Version :\t${CRS}${LOCAL_VERSION}"
echo -e " ${CYN}GitHub Version :\t${CRS}${GIT_VERSION}\n"
else
echo -e "\n ${RED}Version tags malformed or you are using a Beta version!${CRS}\n"
echo -e " ${CYN}Local Version :\t${CRS}${LOCAL_VERSION}"
echo -e " ${CYN}GitHub Version :\t${CRS}${GIT_VERSION}\n"
echo -e " ${RED}Update failed ... Exiting ...${CRS}\n"
exit 1
fi
fi
}
### HELP
help() {
echo -e "\n${CYN}${SCRIPT_NAME}${CRS}\n"
echo -e "Helium Browser installer & updater script\n"
echo -e "Syntax: helium_helper.sh [ -i | -u | -c | -s | -h ]\n"
echo -e "Options :\n"
echo -e "\t-i\tInstall Helium to ${GRN}${INSTALL_PATH}${CRS}"
echo -e "\t-u\tUpdate Helium from GitHub"
echo -e "\t-c\tCompare local to remote version"
echo -e "\t-s\tShow script version"
echo -e "\t-h\tPrint this help page.\n"
}
########## MAIN ##########
## GET OPTIONS
while getopts ":i,:u,:c,:s,:h" OPTION ; do
case $OPTION in
i)
echo -e "\n ${YEL}Installing Helium Browser...${CRS}"
dependency_check
install_helium
exit ;;
u)
echo -e "\n ${YEL}Updating Helium Browser...${CRS}"
dependency_check
update_helium
exit ;;
c)
echo -e "\n ${YEL}Comparing remote to local version...${CRS}"
dependency_check
compare_version
exit ;;
s)
script_version
exit ;;
h)
help
exit;;
esac
done
## DEPENDENCY CHECK
dependency_check
## CHECK FOR LOCAL INSTALL
local_check
## UPDATE
update_helium
rm -rf $TMP