Compare commits
No commits in common. "bb478145651a420f224492efa0cb8a2e510f8e7e" and "e5d47bfa5d97bf40354546d9b8a15cb2c1aaad32" have entirely different histories.
bb47814565
...
e5d47bfa5d
6 changed files with 236 additions and 702 deletions
80
README.md
80
README.md
|
|
@ -1,73 +1,19 @@
|
||||||
# Helium Bowser installer & updater
|
# Helium Bowser 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... and is distro independent.
|
|
||||||
|
|
||||||
With "little" tinkering it should be possible to apply this script to install, update & configure many kinds of releases from source, like Debian packages, AppImages, binaries, etc...
|
|
||||||
## Usage
|
|
||||||
Help
|
|
||||||
```sh
|
|
||||||
./helium_helper.sh -h
|
|
||||||
```
|
|
||||||
### First Install
|
|
||||||
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
|
|
||||||
```
|
|
||||||
Run script with install parameter _-i_
|
|
||||||
```sh
|
|
||||||
./helium_helper.sh -i
|
|
||||||
```
|
|
||||||
Add alias to `.shellrc` | _optional_
|
|
||||||
```sh
|
|
||||||
./helium_helper.sh -a ### ONLY TESTED WITH zsh & bash
|
|
||||||
```
|
|
||||||
---
|
|
||||||
### Updating
|
|
||||||
**From launcher** (if added)
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
**Terminal**
|
|
||||||
|
|
||||||
Updating can also be done by running:
|
|
||||||
```sh
|
|
||||||
./helium_helper.sh -u ### UPDATE APP
|
|
||||||
```
|
|
||||||
```sh
|
|
||||||
./helium_helper.sh -S ### UPDATE SCRIPT
|
|
||||||
```
|
|
||||||
Since this script is interactive, it doesn't keep logs.
|
|
||||||
## Overview
|
## Overview
|
||||||
### Helium_Helper.sh
|
### Helium_Helper.sh
|
||||||
- Interactive installer, updater & configuration script
|
- Interactive installer and updater script
|
||||||
- Installs to `/home/<USER>/.apps/Helium` | changeable in line 28 `INSTALL_PATH`
|
- Installs to `/home/<USER>/.apps/Helium` | changeable in line 27 `INSTALL_PATH`
|
||||||
- Assumes:
|
- Assumes:
|
||||||
- Presence of `/home/<USER>/.apps/Helium` when updating | changeable in line 28 `INSTALL_PATH`
|
- Presence of `/home/<USER>/.apps/Helium` when updating | changeable in line 27 `INSTALL_PATH`
|
||||||
- Executable named `Helium.AppImage`
|
- Executable named `Helium.AppImage` | for convenience so launchers don't have to be edited at each update
|
||||||
- Keeps backups of
|
- Keeps prior AppImage as `Helium.old` which will be replaced at every update
|
||||||
- `Helium.AppImage` --> `Helium.AppImage.old`
|
|
||||||
- `helium_helper.sh` --> `helium_helper.sh.old`
|
|
||||||
- `helium_launcher_update.sh` --> `helium_launcher_update.sh.old`
|
|
||||||
- `Helium.desktop` --> `Helium.desktop.old`
|
|
||||||
which will be overwritten at every update
|
|
||||||
- Adds desktop launcher to `/home/<USER>/.local/share/applications`
|
- Adds desktop launcher to `/home/<USER>/.local/share/applications`
|
||||||
- Adds options to launcher which are run by `helium_launcher_updater.sh`
|
|
||||||
- Update Helium
|
### Helium_Auto_Update.sh
|
||||||
- Update Script
|
- Automatic updater script
|
||||||
- View Log
|
- Installs to `/home/<USER>/.apps/Helium` | changeable in line 8 `INSTALL_PATH`
|
||||||
- Run `helium_helper.sh -h` for help
|
|
||||||
---
|
|
||||||
### Helium_Launcher_Update.sh
|
|
||||||
- Update Helium from launcher
|
|
||||||
- Assumes:
|
- Assumes:
|
||||||
- Presence of `/home/<USER>/.apps/Helium` when updating | changeable in line 19 `INSTALL_PATH`
|
- Presence of `/home/<USER>/.apps/Helium` when updating | changeable in line 8 `INSTALL_PATH`
|
||||||
- Executable named `Helium.AppImage`
|
- Executable named `helium-browser.AppImage` | for convenience so launchers don't have to be edited at each update
|
||||||
- Loggs to `/home/<USER>/.apps/Helium/assets/logs`
|
- Loggs to `/home/<USER>/.apps/Helium/updateLog`
|
||||||
- Keeps backups of
|
- Keeps prior AppImage as `helium-browser.OldAppImage` which will be replaced at every update
|
||||||
- `Helium.AppImage` --> `Helium.AppImage.old`
|
|
||||||
- `helium_helper.sh` --> `helium_helper.sh.old`
|
|
||||||
- `helium_launcher_update.sh` --> `helium_launcher_update.sh.old`
|
|
||||||
- `Helium.desktop` --> `Helium.desktop.old`
|
|
||||||
which will be overwritten at every update
|
|
||||||
- Run `helium_launcher_update.sh -h` for help
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ Icon=%ICON_LOCATION%
|
||||||
Type=Application
|
Type=Application
|
||||||
Categories=Network;WebBrowser;
|
Categories=Network;WebBrowser;
|
||||||
MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;
|
MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;
|
||||||
Actions=new-window;new-private-window;update;update-script;show-log;
|
Actions=new-window;new-private-window;
|
||||||
X-AppImage-Version=%APP_VERSION%
|
X-AppImage-Version=%APP_VERSION%
|
||||||
|
|
||||||
[Desktop Action new-window]
|
[Desktop Action new-window]
|
||||||
|
|
@ -22,14 +22,3 @@ Exec=%APP_LOCATION%
|
||||||
Name=New Incognito Window
|
Name=New Incognito Window
|
||||||
Exec=%APP_LOCATION% --incognito
|
Exec=%APP_LOCATION% --incognito
|
||||||
|
|
||||||
[Desktop Action update]
|
|
||||||
Name=Update Helium
|
|
||||||
Exec=%QUIET_UPDATE_SCRIPT%
|
|
||||||
|
|
||||||
[Desktop Action update-script]
|
|
||||||
Name=Update Helium Helper
|
|
||||||
Exec=%SCRIPT_UPDATE%
|
|
||||||
|
|
||||||
[Desktop Action show-log]
|
|
||||||
Name=Show Update Log
|
|
||||||
Exec=%OPEN_LOG_EDITOR%
|
|
||||||
82
devdoc.md
82
devdoc.md
|
|
@ -1,82 +0,0 @@
|
||||||
# To Do List Helium installer
|
|
||||||
|
|
||||||
## Last Jobs
|
|
||||||
- Readme updated
|
|
||||||
- Desktop Entry updater --> Complete
|
|
||||||
- Launcher has an update option now
|
|
||||||
- Launcher installer refined
|
|
||||||
- Clean Up
|
|
||||||
---
|
|
||||||
- Script updater
|
|
||||||
- Remote script check simplified
|
|
||||||
- Remover function extended
|
|
||||||
- Alias remover added
|
|
||||||
- Script remover added
|
|
||||||
- helium_auto_update.sh renamed to helium_launcher_update.sh
|
|
||||||
- Desktop notifications added
|
|
||||||
- Launcher functions extended
|
|
||||||
- Update script option added
|
|
||||||
- Show log option added
|
|
||||||
- Variables universalized
|
|
||||||
- Wiki created
|
|
||||||
---
|
|
||||||
- sed command fixed in remover
|
|
||||||
- ARCH variable added
|
|
||||||
- APP_SOURCE variable changed
|
|
||||||
- BRANCH variable added
|
|
||||||
- FILE_EXTENSION variable added
|
|
||||||
- Readme updated
|
|
||||||
|
|
||||||
## Add/To Do
|
|
||||||
- Architecture detection
|
|
||||||
- Set alias --> Partially
|
|
||||||
- shell recognition missing
|
|
||||||
- Roll back from backup
|
|
||||||
- Config check
|
|
||||||
- Simplification (more for loops) & Clean Up
|
|
||||||
- Update Readme
|
|
||||||
- Make functional launcher optional
|
|
||||||
|
|
||||||
## Repo
|
|
||||||
- Merge workflow
|
|
||||||
- Convert URLs from __main__ to __stable__
|
|
||||||
- Remove to do list
|
|
||||||
- Remove comment from script
|
|
||||||
|
|
||||||
## Fix
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
- Auto Update
|
|
||||||
```sh
|
|
||||||
while true ; do
|
|
||||||
read -p " Enable automatic update check on login? (y/N) : " AUTO_UPDATE
|
|
||||||
|
|
||||||
if [[ "$AUTO_UPDATE" == "" || "$AUTO_UPDATE" == "n" || "$AUTO_UPDATE" == "N" ]] ; then
|
|
||||||
break
|
|
||||||
|
|
||||||
elif [[ "$AUTO_UPDATE" == "y" || "$AUTO_UPDATE" == "Y" ]] ; then
|
|
||||||
if ! [ -f "$PROFILE" ] ; then
|
|
||||||
echo -e "\n ${RED}Following file is missing :\n\n${YEL}$PROFILE\n\n ${CYN}Please investigate and re-run script !${CRS}"
|
|
||||||
exit 1
|
|
||||||
|
|
||||||
else
|
|
||||||
wget -P $TMP https://lab.c95.org/fr4nz/shell-scripts/src/branch/main/helium-browser/helium_auto_update.sh -q --show-progress
|
|
||||||
chmod +x $TMP/helium_auto_update.sh
|
|
||||||
mv $TMP/helium_auto_update.sh $INSTALL_PATH/helium_auto_update.sh
|
|
||||||
echo >> $PROFILE
|
|
||||||
echo "### HELIUM AUTO UPDATE ###" >> $PROFILE
|
|
||||||
echo "${INSTALL_PATH}/helium_auto_update.sh" >> $PROFILE
|
|
||||||
echo >> $PROFILE
|
|
||||||
echo -e "\n ${GRN}Automatic updates enabled ! ${CRS}\n"
|
|
||||||
break
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
echo -e " ${YEL}Invalid response !${CRS}\n"
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
done
|
|
||||||
```
|
|
||||||
94
helium_auto_update.sh
Executable file
94
helium_auto_update.sh
Executable file
|
|
@ -0,0 +1,94 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# HELIUM BOWSER AUTO UPDATE SCRIPT WITH LOGGING
|
||||||
|
|
||||||
|
## VARIABLES & TMP FOLDER
|
||||||
|
mkdir -p /tmp/Helium
|
||||||
|
TMP=/tmp/Helium
|
||||||
|
INSTALL_PATH=$HOME/.apps/Helium
|
||||||
|
LOG=$INSTALL_PATH/updateLog
|
||||||
|
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}')
|
||||||
|
LOCAL_VERSION=$($INSTALL_PATH/helium-browser.AppImage --version | awk '{print $2}')
|
||||||
|
DATE=$(date)
|
||||||
|
|
||||||
|
## CHECKS
|
||||||
|
if ! [ -d "$INSTALL_PATH" ] ; then
|
||||||
|
mkdir -p $INSTALL_PATH
|
||||||
|
echo "${DATE} | Failed to update - Helium installation path not present - But created for logging" >> $LOG
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
elif ! [ -f "$INSTALL_PATH/helium-browser.AppImage" ] ; then
|
||||||
|
echo "${DATE} | Failed to update - Local Helium AppImage not found" >> $LOG
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
else
|
||||||
|
:
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
### SCRIPT DEPENDENCIES
|
||||||
|
dependency_check() {
|
||||||
|
local PACKAGE="$1"
|
||||||
|
|
||||||
|
if command -v "$PACKAGE" >/dev/null 2>&1 ; then
|
||||||
|
:
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "$PACKAGE" >>$TMP/missingDeps
|
||||||
|
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
for PACKAGE in "${DEPENDENCIES[@]}" ; do
|
||||||
|
dependency_check "$PACKAGE"
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
if ! [ "$MISSING" ] ; then
|
||||||
|
:
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "${DATE} | Failed to update - missing dependencies : $MISSING" >> $LOG
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
## COMPARE VERSIONS
|
||||||
|
update_helium() {
|
||||||
|
GIT_URL=$(curl -s https://api.github.com/repos/imputnet/helium-linux/releases/latest | grep "browser_download_url" | grep "x86_64.AppImage" | grep -v "zsync" | tr -d \" | awk '{print $2}')
|
||||||
|
GIT_FILENAME=$(curl -s https://api.github.com/repos/imputnet/helium-linux/releases/latest | grep "browser_download_url" | grep "x86_64.AppImage" | grep -v "zsync" | tr -d \" | awk '{print $2}' | awk -F'/' '{print $9}')
|
||||||
|
wget -P $TMP $GIT_URL -q
|
||||||
|
chmod +x $TMP/$GIT_FILENAME
|
||||||
|
rm $INSTALL_PATH/helium-browser.OldAppImage >/dev/null 2>&1
|
||||||
|
mv $INSTALL_PATH/helium-browser.AppImage $INSTALL_PATH/helium-browser.OldAppImage >/dev/null 2>&1
|
||||||
|
mv $TMP/$GIT_FILENAME $INSTALL_PATH/helium-browser.AppImage
|
||||||
|
echo "${DATE} | Helium updated to ${GIT_VERSION}" >> $LOG
|
||||||
|
}
|
||||||
|
|
||||||
|
### CHECK FOR EMPTY VERSION TAGS
|
||||||
|
if [[ -z "$GIT_VERSION" ]] ; then
|
||||||
|
echo "${DATE} | Failed to update - Emty version tag --> GIT" >> $LOG
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
elif [[ -z "$LOCAL_VERSION" ]] ; then
|
||||||
|
echo "${DATE} | Failed to update - Emty version tag --> LOCAL" >> $LOG
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
else
|
||||||
|
:
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$GIT_VERSION" == "$LOCAL_VERSION" ]] ; then
|
||||||
|
:
|
||||||
|
|
||||||
|
else
|
||||||
|
update_helium
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf $TMP
|
||||||
|
|
||||||
|
exit 0
|
||||||
395
helium_helper.sh
395
helium_helper.sh
|
|
@ -1,5 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Helium BOWSER INSTALL & UPDATE SCRIPT ---> INTERACTIVE
|
# Helium BOWSER INSTALL & UPDATE SCRIPT ---> INTERACTIVE
|
||||||
|
|
||||||
########## PREREQUISITES ###########
|
########## PREREQUISITES ###########
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
|
@ -14,30 +16,22 @@ CRS="\e[0m"
|
||||||
## GLOBAL VARIABLES
|
## GLOBAL VARIABLES
|
||||||
APP_NAME="Helium"
|
APP_NAME="Helium"
|
||||||
APP_NAME_LONG="Helium Web Browser"
|
APP_NAME_LONG="Helium Web Browser"
|
||||||
ARCH="x86_64"
|
SOURCE="GitHub"
|
||||||
FILE_EXTENSION="AppImage"
|
|
||||||
APP_SOURCE="GitHub"
|
|
||||||
SCRIPT_NAME="$APP_NAME Helper Script"
|
SCRIPT_NAME="$APP_NAME Helper Script"
|
||||||
SCRIPT_FILE_NAME="helium_helper.sh"
|
SCRIPT_FILE_NAME="helium_helper.sh"
|
||||||
AUTO_SCRIPT_FILE_NAME="helium_launcher_update.sh"
|
SCRIPT_VERSION="0.5.1"
|
||||||
SCRIPT_VERSION="0.5.7"
|
DATE=$(date)
|
||||||
ALIAS="update-helium"
|
|
||||||
|
|
||||||
## LOCATIONS
|
## LOCATIONS
|
||||||
TMP=/tmp/$APP_NAME
|
TMP=/tmp/$APP_NAME
|
||||||
INSTALL_PATH=$HOME/.apps/$APP_NAME
|
INSTALL_PATH=$HOME/.apps/$APP_NAME
|
||||||
ASSET_PATH=$INSTALL_PATH/assets
|
CONFIG_PATH=$INSTALL_PATH/assets
|
||||||
BACKUP_PATH=$ASSET_PATH/backup
|
BACKUP_PATH=$INSTALL_PATH/assets/backup
|
||||||
LOG_PATH=$ASSET_PATH/logs
|
LOG_PATH=$INSTALL_PATH/assets/logs
|
||||||
LOG=$LOG_PATH/log
|
LOG=$LOG_PATH/log
|
||||||
LAUNCHER_PATH=$HOME/.local/share/applications
|
LAUNCHER_PATH=$HOME/.local/share/applications
|
||||||
SCRIPT_PATH=$HOME/.local/bin
|
SCRIPT_PATH=$HOME/.local/bin
|
||||||
|
#PROFILE=$HOME/.profile ### for AUTO UPDATE
|
||||||
## REMOTE LOCATIONS
|
|
||||||
REMOTE_REPO_BRANCH="main"
|
|
||||||
REMOTE_REPO_URL=https://lab.c95.org/fr4nz/helium-helper/raw/branch/$REMOTE_REPO_BRANCH
|
|
||||||
REMOTE_SCRIPT_URL=$REMOTE_REPO_URL/$SCRIPT_FILE_NAME
|
|
||||||
APP_SOURCE_URL=https://api.github.com/repos/imputnet/helium-linux/releases/latest
|
|
||||||
|
|
||||||
########## FUNCTIONS ###########
|
########## FUNCTIONS ###########
|
||||||
|
|
||||||
|
|
@ -64,6 +58,7 @@ dependency_check () {
|
||||||
MISSING=$(cat $TMP/missingDeps)
|
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}"
|
echo -e "\n ${RED}Following dependencies are missing :\n\n${CRS}$MISSING\n\n ${CYN}Please install and re-run script !${CRS}"
|
||||||
exit_clean
|
exit_clean
|
||||||
|
exit
|
||||||
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
@ -75,8 +70,8 @@ local_check() {
|
||||||
install_helium
|
install_helium
|
||||||
exit
|
exit
|
||||||
|
|
||||||
elif ! [ -f "$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION" ] ; then
|
elif ! [ -f "$INSTALL_PATH/$APP_NAME.AppImage" ] ; then
|
||||||
echo -e "\n ${RED}$APP_NAME_LONG directory found but no executable named ${CYN}$APP_NAME.$FILE_EXTENSION${RED}!${CRS}"
|
echo -e "\n ${RED}$APP_NAME_LONG directory found but no executable named ${CYN}$APP_NAME.AppImage${RED}!${CRS}"
|
||||||
install_helium
|
install_helium
|
||||||
exit
|
exit
|
||||||
|
|
||||||
|
|
@ -85,31 +80,31 @@ local_check() {
|
||||||
|
|
||||||
### INSTALL
|
### INSTALL
|
||||||
install_helium() {
|
install_helium() {
|
||||||
if [ -f "$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION" ] ; then
|
if [ -f "$INSTALL_PATH/$APP_NAME.AppImage" ] ; then
|
||||||
echo -e "\n ${YEL}$APP_NAME_LONG AppImage found! Trying to update...${CRS}"
|
echo -e "\n ${CYN}$APP_NAME_LONG AppImage found! Trying to update...${CRS}"
|
||||||
update_helium
|
update_helium
|
||||||
exit
|
exit
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
while true ; do
|
while true ; do
|
||||||
read -p " Download and install $APP_NAME_LONG from $APP_SOURCE? (Y/n) : " CONFIRM_INSTALL
|
read -p " Download and install $APP_NAME_LONG from $SOURCE? (Y/n) : " CONFIRM_INSTALL
|
||||||
echo
|
echo
|
||||||
|
|
||||||
if [[ "$CONFIRM_INSTALL" == "" || "$CONFIRM_INSTALL" == "y" || "$CONFIRM_INSTALL" == "Y" ]] ; then
|
if [[ "$CONFIRM_INSTALL" == "" || "$CONFIRM_INSTALL" == "y" || "$CONFIRM_INSTALL" == "Y" ]] ; then
|
||||||
DOWNLOAD_URL=$(curl -s $APP_SOURCE_URL | grep "browser_download_url" | grep "$ARCH.$FILE_EXTENSION" | grep -v "zsync" | tr -d \" | awk '{print $2}')
|
GIT_URL=$(curl -s https://api.github.com/repos/imputnet/helium-linux/releases/latest | grep "browser_download_url" | grep "x86_64.AppImage" | grep -v "zsync" | tr -d \" | awk '{print $2}')
|
||||||
APP_SOURCE_FILENAME=$(curl -s $APP_SOURCE_URL | grep "browser_download_url" | grep "$ARCH.$FILE_EXTENSION" | grep -v "zsync" | tr -d \" | awk '{print $2}' | awk -F'/' '{print $9}')
|
GIT_FILENAME=$(curl -s https://api.github.com/repos/imputnet/helium-linux/releases/latest | grep "browser_download_url" | grep "x86_64.AppImage" | grep -v "zsync" | tr -d \" | awk '{print $2}' | awk -F'/' '{print $9}')
|
||||||
wget -P $TMP $DOWNLOAD_URL -q --show-progress
|
wget -P $TMP $GIT_URL -q --show-progress
|
||||||
chmod +x $TMP/$APP_SOURCE_FILENAME
|
chmod +x $TMP/$GIT_FILENAME
|
||||||
mkdir -p $INSTALL_PATH
|
mkdir -p $INSTALL_PATH
|
||||||
mv $TMP/$APP_SOURCE_FILENAME $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION
|
mv $TMP/$GIT_FILENAME $INSTALL_PATH/$APP_NAME.AppImage
|
||||||
add_launcher
|
|
||||||
echo -e "\n ${GRN}$APP_NAME_LONG is installed!${CRS}\n"
|
echo -e "\n ${GRN}$APP_NAME_LONG is installed!${CRS}\n"
|
||||||
break
|
add_launcher
|
||||||
|
exit_clean
|
||||||
|
|
||||||
elif [[ "$CONFIRM_INSTALL" == "n" || "$CONFIRM_INSTALL" == "N" ]] ; then
|
elif [[ "$CONFIRM_INSTALL" == "n" || "$CONFIRM_INSTALL" == "N" ]] ; then
|
||||||
echo -e " ${RED}Cancelled!${CRS}"
|
echo -e "\n ${RED}Installation cancelled!${CRS}\n"
|
||||||
break
|
exit
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e " ${YEL}Invalid response!${CRS}\n"
|
echo -e " ${YEL}Invalid response!${CRS}\n"
|
||||||
|
|
@ -119,45 +114,36 @@ install_helium() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
### LAUNCHER
|
### LAUNCHER --> TO DO
|
||||||
add_launcher() {
|
add_launcher() {
|
||||||
if [ -f "$LAUNCHER_PATH/$APP_NAME.desktop" ] ; then
|
if [ -f "$LAUNCHER_PATH/$APP_NAME.desktop" ] ; then
|
||||||
echo -e "\n ${YEL}${APP_NAME}.desktop already exists!${CRS}"
|
echo -e "\n ${RED}${APP_NAME}.desktop already exists!${CRS}"
|
||||||
|
exit
|
||||||
|
|
||||||
elif [ -f "$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION" ] ; then
|
elif [ -f "$INSTALL_PATH/$APP_NAME.AppImage" ] ; then
|
||||||
while true ; do
|
while true ; do
|
||||||
echo
|
|
||||||
read -p " Add $APP_NAME_LONG launcher to $LAUNCHER_PATH? (Y/n) : " CONFIRM_LAUNCHER
|
read -p " Add $APP_NAME_LONG launcher to $LAUNCHER_PATH? (Y/n) : " CONFIRM_LAUNCHER
|
||||||
echo
|
echo
|
||||||
|
|
||||||
if [[ "$CONFIRM_LAUNCHER" == "" || "$CONFIRM_LAUNCHER" == "y" || "$CONFIRM_LAUNCHER" == "Y" ]] ; then
|
if [[ "$CONFIRM_LAUNCHER" == "" || "$CONFIRM_LAUNCHER" == "y" || "$CONFIRM_LAUNCHER" == "Y" ]] ; then
|
||||||
LAUNCHER_URL=$REMOTE_REPO_URL/assets/launcher/helium.desktop.template
|
LAUNCHER_URL=https://lab.c95.org/fr4nz/helium-helper/raw/branch/stable/assets/launcher/helium.desktop.template
|
||||||
ICON_URL=$REMOTE_REPO_URL/assets/icon/helium.png
|
ICON_URL=https://lab.c95.org/fr4nz/helium-helper/raw/branch/stable/assets/icon/helium.png
|
||||||
AUTO_SCRIPT_URL=$REMOTE_REPO_URL/$AUTO_SCRIPT_FILE_NAME
|
LOCAL_VERSION=$($INSTALL_PATH/$APP_NAME.AppImage --version | awk '{print $2}')
|
||||||
LOCAL_VERSION=$($INSTALL_PATH/$APP_NAME.$FILE_EXTENSION --version | awk '{print $2}')
|
|
||||||
mkdir -p $LAUNCHER_PATH $SCRIPT_PATH $BACKUP_PATH $ASSET_PATH/icon
|
|
||||||
if ! [ -f "$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME" ] ; then
|
|
||||||
wget -P $TMP $AUTO_SCRIPT_URL -q --show-progress
|
|
||||||
chmod +x $TMP/$AUTO_SCRIPT_FILE_NAME
|
|
||||||
mv $TMP/$AUTO_SCRIPT_FILE_NAME $SCRIPT_PATH
|
|
||||||
fi
|
|
||||||
|
|
||||||
wget -P $TMP $LAUNCHER_URL -q --show-progress
|
wget -P $TMP $LAUNCHER_URL -q --show-progress
|
||||||
wget -P $TMP $ICON_URL -q --show-progress
|
wget -P $TMP $ICON_URL -q --show-progress
|
||||||
sed -i "s|%APP_LOCATION%|$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION|" $TMP/helium.desktop.template
|
sed -i "s|%APP_LOCATION%|$INSTALL_PATH/$APP_NAME.AppImage|" $TMP/helium.desktop.template
|
||||||
sed -i "s|%ICON_LOCATION%|$ASSET_PATH/icon/helium.png|" $TMP/helium.desktop.template
|
sed -i "s|%ICON_LOCATION%|$CONFIG_PATH/icon/helium.png|" $TMP/helium.desktop.template
|
||||||
sed -i "s|%APP_VERSION%|$LOCAL_VERSION|" $TMP/helium.desktop.template
|
sed -i "s|%APP_VERSION%|$LOCAL_VERSION|" $TMP/helium.desktop.template
|
||||||
sed -i "s|%QUIET_UPDATE_SCRIPT%|$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME|" $TMP/helium.desktop.template
|
mkdir -p $LAUNCHER_PATH $BACKUP_PATH $CONFIG_PATH/icon
|
||||||
sed -i "s|%SCRIPT_UPDATE%|$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME -S|" $TMP/helium.desktop.template
|
cp $TMP/helium.desktop.template $LAUNCHER_PATH/$APP_NAME.desktop
|
||||||
sed -i "s|%OPEN_LOG_EDITOR%|$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME -L|" $TMP/helium.desktop.template
|
mv $TMP/helium.desktop.template $BACKUP_PATH/$APP_NAME.desktop.backup
|
||||||
mv $TMP/helium.desktop.template $LAUNCHER_PATH/$APP_NAME.desktop
|
mv $TMP/helium.png $CONFIG_PATH/icon
|
||||||
mv $TMP/helium.png $ASSET_PATH/icon
|
echo -e "\n ${GRN}$APP_NAME_LONG launcher is set up!${CRS}\n"
|
||||||
echo -e "\n ${GRN}$APP_NAME_LONG launcher is set up!${CRS}"
|
exit_clean
|
||||||
break
|
|
||||||
|
|
||||||
elif [[ "$CONFIRM_LAUNCHER" == "n" || "$CONFIRM_LAUNCHER" == "N" ]] ; then
|
elif [[ "$CONFIRM_LAUNCHER" == "n" || "$CONFIRM_LAUNCHER" == "N" ]] ; then
|
||||||
echo -e " ${RED}Launcher not added!${CRS}"
|
echo -e "\n ${RED}Launcher creation cancelled!${CRS}\n"
|
||||||
break
|
exit
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e " ${YEL}Invalid response!${CRS}\n"
|
echo -e " ${YEL}Invalid response!${CRS}\n"
|
||||||
|
|
@ -174,45 +160,14 @@ add_launcher() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### ALIAS
|
|
||||||
add_alias() { ### WORKS BUT NEEDS WORK
|
|
||||||
if ! [ -f "$SCRIPT_PATH/$SCRIPT_FILE_NAME" ] ; then
|
|
||||||
mkdir -p $SCRIPT_PATH
|
|
||||||
wget -P $TMP $REMOTE_SCRIPT_URL -q
|
|
||||||
chmod +x $TMP/$SCRIPT_FILE_NAME
|
|
||||||
mv $TMP/$SCRIPT_FILE_NAME $SCRIPT_PATH
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f "$HOME/.zshrc" ] ; then
|
|
||||||
if [ "$(cat $HOME/.zshrc | grep "$ALIAS")" ] ; then
|
|
||||||
echo -e "\n ${LCY}$ALIAS ${GRN}already present in${CRS} $HOME/.zshrc"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
echo "alias $ALIAS=\"$SCRIPT_PATH/$SCRIPT_FILE_NAME\"" >> $HOME/.zshrc
|
|
||||||
echo -e "\n ${LCY}$ALIAS ${GRN}added to${CRS} $HOME/.zshrc"
|
|
||||||
|
|
||||||
elif [ -f "$HOME/.bashrc" ] ; then
|
|
||||||
if [ "$(cat $HOME/.bashrc | grep "$ALIAS")" ] ; then
|
|
||||||
echo -e "\n ${LCY}$ALIAS ${GRN}already present in${CRS} $HOME/.bashrc"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
echo "alias $ALIAS=\"$SCRIPT_PATH/$SCRIPT_FILE_NAME\"" >> $HOME/.zshrc
|
|
||||||
echo -e "\n ${LCY}$ALIAS ${GRN}added to${CRS} $HOME/.bashrc"
|
|
||||||
|
|
||||||
else
|
|
||||||
echo -e "\n ${RED}No .shellrc file found!${CRS}"
|
|
||||||
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
### UPDATE
|
### UPDATE
|
||||||
update_helium() {
|
update_helium() {
|
||||||
LOCAL_VERSION=$($INSTALL_PATH/$APP_NAME.$FILE_EXTENSION --version | awk '{print $2}')
|
LOCAL_VERSION=$($INSTALL_PATH/$APP_NAME.AppImage --version | awk '{print $2}')
|
||||||
APP_SOURCE_VERSION=$(curl -s $APP_SOURCE_URL | grep "tag_name" | tr -d \", | awk '{print $2}')
|
GIT_VERSION=$(curl -s https://api.github.com/repos/imputnet/helium-linux/releases/latest | grep "tag_name" | tr -d \", | awk '{print $2}')
|
||||||
|
|
||||||
### CHECK FOR EMPTY VERSION TAGS
|
### CHECK FOR EMPTY VERSION TAGS
|
||||||
if [ -z "$APP_SOURCE_VERSION" ] ; then
|
if [ -z "$GIT_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}$SOURCE${RED}! Can't compare, exiting...${CRS}"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
elif [ -z "$LOCAL_VERSION" ] ; then
|
elif [ -z "$LOCAL_VERSION" ] ; then
|
||||||
|
|
@ -223,38 +178,36 @@ update_helium() {
|
||||||
|
|
||||||
### COMPARE LOCAL & REMOTE VERSION
|
### COMPARE LOCAL & REMOTE VERSION
|
||||||
LOCAL_VERSION_NUM=$(echo $LOCAL_VERSION | tr -d .)
|
LOCAL_VERSION_NUM=$(echo $LOCAL_VERSION | tr -d .)
|
||||||
APP_SOURCE_VERSION_NUM=$(echo $APP_SOURCE_VERSION | tr -d .)
|
GIT_VERSION_NUM=$(echo $GIT_VERSION | tr -d .)
|
||||||
|
|
||||||
if [ "$APP_SOURCE_VERSION" == "$LOCAL_VERSION" ] ; then
|
if [ "$GIT_VERSION" == "$LOCAL_VERSION" ] ; then
|
||||||
echo -e "\n ${GRN}$APP_NAME_LONG is already up-to-date!${CRS}\n"
|
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 [ "$GIT_VERSION_NUM" -gt "$LOCAL_VERSION_NUM" ] ; then
|
||||||
echo -e "\n ${LCY}$APP_NAME_LONG is updatable!${CRS}\n"
|
echo -e "\n ${RED}$APP_NAME_LONG is updatable!${CRS}\n"
|
||||||
echo -e " ${CYN}Local Version :\t${CRS}${LOCAL_VERSION}"
|
echo -e " ${CYN}Local Version :\t${CRS}${LOCAL_VERSION}"
|
||||||
echo -e " ${CYN}$APP_SOURCE Version :\t${CRS}${APP_SOURCE_VERSION}\n"
|
echo -e " ${CYN}$SOURCE Version :\t${CRS}${GIT_VERSION}\n"
|
||||||
|
|
||||||
while true ; do
|
while true ; do
|
||||||
read -p " Download and update $APP_NAME_LONG from $APP_SOURCE? (Y/n) : " CONFIRM
|
read -p " Download and update $APP_NAME_LONG from $SOURCE? (Y/n) : " CONFIRM
|
||||||
echo
|
echo
|
||||||
|
|
||||||
if [[ "$CONFIRM" == "" || "$CONFIRM" == "y" || "$CONFIRM" == "Y" ]] ; then
|
if [[ "$CONFIRM" == "" || "$CONFIRM" == "y" || "$CONFIRM" == "Y" ]] ; then
|
||||||
DOWNLOAD_URL=$(curl -s $APP_SOURCE_URL | grep "browser_download_url" | grep "$ARCH.$FILE_EXTENSION" | grep -v "zsync" | tr -d \" | awk '{print $2}')
|
GIT_URL=$(curl -s https://api.github.com/repos/imputnet/helium-linux/releases/latest | grep "browser_download_url" | grep "x86_64.AppImage" | grep -v "zsync" | tr -d \" | awk '{print $2}')
|
||||||
APP_SOURCE_FILENAME=$(curl -s $APP_SOURCE_URL | grep "browser_download_url" | grep "$ARCH.$FILE_EXTENSION" | grep -v "zsync" | tr -d \" | awk '{print $2}' | awk -F'/' '{print $9}')
|
GIT_FILENAME=$(curl -s https://api.github.com/repos/imputnet/helium-linux/releases/latest | grep "browser_download_url" | grep "x86_64.AppImage" | grep -v "zsync" | tr -d \" | awk '{print $2}' | awk -F'/' '{print $9}')
|
||||||
mkdir -p $TMP $BACKUP_PATH
|
mkdir -p $TMP
|
||||||
wget -P $TMP $DOWNLOAD_URL -q --show-progress
|
wget -P $TMP $GIT_URL -q --show-progress
|
||||||
chmod +x $TMP/$APP_SOURCE_FILENAME
|
chmod +x $TMP/$GIT_FILENAME
|
||||||
if [ -f "$BACKUP_PATH/$APP_NAME.old" ] ; then
|
if [ -f "$INSTALL_PATH/$APP_NAME.old" ] ; then
|
||||||
rm $BACKUP_PATH/$APP_NAME.old
|
rm $INSTALL_PATH/$APP_NAME.old
|
||||||
fi
|
fi
|
||||||
mv $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION $BACKUP_PATH/$APP_NAME.old
|
mv $INSTALL_PATH/$APP_NAME.AppImage $INSTALL_PATH/$APP_NAME.old
|
||||||
mv $TMP/$APP_SOURCE_FILENAME $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION
|
mv $TMP/$GIT_FILENAME $INSTALL_PATH/$APP_NAME.AppImage
|
||||||
cp $LAUNCHER_PATH/$APP_NAME.desktop $BACKUP_PATH/$APP_NAME.desktop.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"
|
echo -e "\n ${GRN}$APP_NAME_LONG is up-to-date !${CRS}\n"
|
||||||
break
|
break
|
||||||
|
|
||||||
elif [[ "$CONFIRM" == "n" || "$CONFIRM" == "N" ]] ; then
|
elif [[ "$CONFIRM" == "n" || "$CONFIRM" == "N" ]] ; then
|
||||||
echo -e " ${RED}Cancelled!${CRS}"
|
echo -e "\n ${RED}Update cancelled!${CRS}\n"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
@ -267,7 +220,7 @@ update_helium() {
|
||||||
else
|
else
|
||||||
echo -e "\n ${RED}Version tags malformed or you are using a Beta version!${CRS}\n"
|
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}Local Version :\t${CRS}${LOCAL_VERSION}"
|
||||||
echo -e " ${CYN}$APP_SOURCE Version :\t${CRS}${APP_SOURCE_VERSION}\n"
|
echo -e " ${CYN}$SOURCE Version :\t${CRS}${GIT_VERSION}\n"
|
||||||
echo -e " ${RED}Update failed... Exiting...${CRS}\n"
|
echo -e " ${RED}Update failed... Exiting...${CRS}\n"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
|
|
@ -275,14 +228,15 @@ update_helium() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
### AUTOMATIC UPDATE --> TO DO?
|
### AUTOMATIC UPDATE --> TO DO
|
||||||
auto_update() {
|
auto_update() {
|
||||||
if ! [ -f "$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION" ] ; then
|
if ! [ -f "$INSTALL_PATH/$APP_NAME.AppImage" ] ; then
|
||||||
echo -e "\n ${RED}$APP_NAME AppImage not found! Can't add auto update script...${CRS}"
|
echo -e "\n ${RED}$APP_NAME AppImage not found! Can't add auto update script...${CRS}"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e "\n ${RED}Not implemented yet...${CRS}"
|
echo -e "\n ${RED}Not implemented yet...${CRS}"
|
||||||
|
exit
|
||||||
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
@ -292,46 +246,27 @@ remove_helium() {
|
||||||
if [ -d "$INSTALL_PATH" ] ; then
|
if [ -d "$INSTALL_PATH" ] ; then
|
||||||
|
|
||||||
while true ; do
|
while true ; do
|
||||||
read -p " Remove $APP_NAME_LONG incl. backups and launcher? (Y/n) : " CONFIRM_REMOVE
|
read -p " Remove $APP_NAME_LONG folder $INSTALL_PATH? (Y/n) : " CONFIRM_REMOVE
|
||||||
|
|
||||||
if [[ "$CONFIRM_REMOVE" == "" || "$CONFIRM_REMOVE" == "y" || "$CONFIRM_REMOVE" == "Y" ]] ; then
|
if [[ "$CONFIRM_REMOVE" == "" || "$CONFIRM_REMOVE" == "y" || "$CONFIRM_REMOVE" == "Y" ]] ; then
|
||||||
rm -rf $INSTALL_PATH
|
rm -rf $INSTALL_PATH
|
||||||
if [ -f "$LAUNCHER_PATH/$APP_NAME.desktop" ] ; then
|
rm $LAUNCHER_PATH/$APP_NAME.desktop
|
||||||
rm $LAUNCHER_PATH/$APP_NAME.desktop
|
echo -e "\n ${RED}$APP_NAME_LONG removed!${CRS}\n"
|
||||||
fi
|
exit
|
||||||
|
|
||||||
if [ -f "$SCRIPT_PATH/$SCRIPT_FILE_NAME" ] ; then
|
elif [[ "$CONFIRM_REMOVE" == "n" || "$CONFIRM_REMOVE" == "N" ]] ; then
|
||||||
rm $SCRIPT_PATH/$SCRIPT_FILE_NAME
|
echo -e "\n ${RED}Removal cancelled!${CRS}\n"
|
||||||
fi
|
exit
|
||||||
|
|
||||||
if [ -f "$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME" ] ; then
|
else
|
||||||
rm $SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME
|
echo -e " ${YEL}Invalid response!${CRS}\n"
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f "$HOME/.zshrc" ] ; then
|
fi
|
||||||
sed -i "/$ALIAS/d" $HOME/.zshrc
|
|
||||||
|
|
||||||
elif [ -f "$HOME/.bashrc" ] ; then
|
done
|
||||||
sed -i "/$ALIAS/d" $HOME/.bashrc
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -e "\n ${RED}$APP_NAME_LONG removed!${CRS}"
|
|
||||||
exit
|
|
||||||
|
|
||||||
elif [[ "$CONFIRM_REMOVE" == "n" || "$CONFIRM_REMOVE" == "N" ]] ; then
|
|
||||||
echo -e " ${RED}Cancelled!${CRS}"
|
|
||||||
exit
|
|
||||||
|
|
||||||
else
|
|
||||||
echo -e " ${YEL}Invalid response!${CRS}\n"
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e "\n ${RED}Can't remove $APP_NAME_LONG! ${YEL}$INSTALL_PATH ${RED}directory not found...${CRS}"
|
echo -e "\n ${RED}Can't remove $APP_NAME_LONG! ${YEL}$INSTALL_PATH ${RED}directory not found...${CRS}\n"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
@ -339,114 +274,32 @@ remove_helium() {
|
||||||
|
|
||||||
### SCRIPT VERSION
|
### SCRIPT VERSION
|
||||||
script_version() {
|
script_version() {
|
||||||
echo -e "\n ${CYN}$APP_NAME_LONG Helper Script Version :${CRS} $SCRIPT_VERSION\n"
|
echo -e "\n ${CYN}$APP_NAME_LONG Helper Script Version : ${GRN}${SCRIPT_VERSION}${CRS}\n"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
### UPDATE SCRIPT
|
### UPDATE SCRIPT --> TO DO
|
||||||
update_script() {
|
update_script() {
|
||||||
### CHECK FOR LOCAL SCRIPT
|
if ! [ -f "$INSTALL_PATH/$APP_NAME.AppImage" ] ; then
|
||||||
if ! [ -f "$SCRIPT_PATH/$SCRIPT_FILE_NAME" ] ; then
|
echo -e "\n ${RED}$APP_NAME_LONG AppImage not found! Can't update script...${CRS}"
|
||||||
echo -e "\n ${YEL}$SCRIPT_FILE_NAME not found...${CRS}"
|
|
||||||
|
|
||||||
while true ; do
|
|
||||||
echo
|
|
||||||
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
|
|
||||||
if ! [ -d "$SCRIPT_PATH" ] ; then
|
|
||||||
mkdir -p $SCRIPT_PATH
|
|
||||||
fi
|
|
||||||
mkdir -p $TMP
|
|
||||||
wget -P $TMP $REMOTE_SCRIPT_URL -q
|
|
||||||
chmod +x $TMP/$SCRIPT_FILE_NAME
|
|
||||||
mv $TMP/$SCRIPT_FILE_NAME $SCRIPT_PATH
|
|
||||||
echo -e "\n ${GRN}$SCRIPT_FILE_NAME is up-to-date!${CRS}"
|
|
||||||
exit_clean
|
|
||||||
|
|
||||||
elif [[ "$CONFIRM_SCRIPT_INSTALL" == "n" || "$CONFIRM_SCRIPT_INSTALL" == "N" ]] ; then
|
|
||||||
echo -e " ${RED}Cancelled!${CRS}"
|
|
||||||
exit
|
|
||||||
|
|
||||||
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="')
|
|
||||||
|
|
||||||
### 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}"
|
|
||||||
exit
|
exit
|
||||||
|
|
||||||
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
|
|
||||||
SCRIPT_VERSION_NUM=$(echo $SCRIPT_VERSION | tr -d .)
|
|
||||||
REMOTE_SCRIPT_VERSION_NUM=$(echo $REMOTE_SCRIPT_VERSION | tr -d .)
|
|
||||||
|
|
||||||
if [ "$REMOTE_SCRIPT_VERSION" == "$SCRIPT_VERSION" ] ; then
|
|
||||||
echo -e "\n ${GRN}$SCRIPT_FILE_NAME is already up-to-date!${CRS}\n"
|
|
||||||
|
|
||||||
elif [ "$REMOTE_SCRIPT_VERSION_NUM" -gt "$SCRIPT_VERSION_NUM" ] ; then
|
|
||||||
echo -e "\n ${YEL}$SCRIPT_FILE_NAME is updatable!${CRS}\n"
|
|
||||||
echo -e " ${CYN}Local Version :\t${CRS}${SCRIPT_VERSION}"
|
|
||||||
echo -e " ${CYN}Remote Version :\t${CRS}${REMOTE_SCRIPT_VERSION}\n"
|
|
||||||
|
|
||||||
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
|
|
||||||
mkdir -p $BACKUP_PATH
|
|
||||||
fi
|
|
||||||
mv $SCRIPT_PATH/$SCRIPT_FILE_NAME $BACKUP_PATH/$SCRIPT_FILE_NAME.old
|
|
||||||
mkdir -p $TMP
|
|
||||||
wget -P $TMP $REMOTE_SCRIPT_URL -q
|
|
||||||
chmod +x $TMP/$SCRIPT_FILE_NAME
|
|
||||||
mv $TMP/$SCRIPT_FILE_NAME $SCRIPT_PATH
|
|
||||||
echo -e " ${GRN}$SCRIPT_FILE_NAME is up-to-date!${CRS}"
|
|
||||||
break
|
|
||||||
|
|
||||||
elif [[ "$CONFIRM_SCRIPT_UPDATE" == "n" || "$CONFIRM_SCRIPT_UPDATE" == "N" ]] ; then
|
|
||||||
echo -e " ${RED}Cancelled!${CRS}"
|
|
||||||
break
|
|
||||||
|
|
||||||
else
|
|
||||||
echo -e " ${YEL}Invalid response!${CRS}\n"
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e "\n ${RED}Version tags malformed or you are using a Beta version!${CRS}\n"
|
echo -e "\n ${RED}Not implemented yet...${CRS}"
|
||||||
echo -e " ${CYN}Local Version :\t${CRS}${SCRIPT_VERSION}"
|
exit
|
||||||
echo -e " ${CYN}Remote Version :\t${CRS}${REMOTE_SCRIPT_VERSION}\n"
|
|
||||||
echo -e " ${RED}Updating script failed...${CRS}\n"
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### COMPARE APPIMAGE VERSION
|
### COMPARE APPIMAGE VERSION
|
||||||
compare_version() {
|
compare_version() {
|
||||||
LOCAL_VERSION=$($INSTALL_PATH/$APP_NAME.$FILE_EXTENSION --version | awk '{print $2}')
|
LOCAL_VERSION=$($INSTALL_PATH/$APP_NAME.AppImage --version | awk '{print $2}')
|
||||||
APP_SOURCE_VERSION=$(curl -s $APP_SOURCE_URL | grep "tag_name" | tr -d \", | awk '{print $2}')
|
GIT_VERSION=$(curl -s https://api.github.com/repos/imputnet/helium-linux/releases/latest | grep "tag_name" | tr -d \", | awk '{print $2}')
|
||||||
|
|
||||||
### CHECK FOR EMPTY VERSION TAGS
|
### CHECK FOR EMPTY VERSION TAGS
|
||||||
if [ -z "$APP_SOURCE_VERSION" ] ; then
|
if [ -z "$GIT_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}$SOURCE${RED}! Can't compare, exiting...${CRS}"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
elif [ -z "$LOCAL_VERSION" ] ; then
|
elif [ -z "$LOCAL_VERSION" ] ; then
|
||||||
|
|
@ -457,24 +310,24 @@ compare_version() {
|
||||||
|
|
||||||
### COMPARE LOCAL & REMOTE VERSION
|
### COMPARE LOCAL & REMOTE VERSION
|
||||||
LOCAL_VERSION_NUM=$(echo $LOCAL_VERSION | tr -d .)
|
LOCAL_VERSION_NUM=$(echo $LOCAL_VERSION | tr -d .)
|
||||||
APP_SOURCE_VERSION_NUM=$(echo $APP_SOURCE_VERSION | tr -d .)
|
GIT_VERSION_NUM=$(echo $GIT_VERSION | tr -d .)
|
||||||
|
|
||||||
if [ "$APP_SOURCE_VERSION" == "$LOCAL_VERSION" ] ; then
|
if [ "$GIT_VERSION" == "$LOCAL_VERSION" ] ; then
|
||||||
echo -e "\n ${GRN}$APP_NAME_LONG is up-to-date!${CRS}\n"
|
echo -e "\n ${GRN}$APP_NAME_LONG is up-to-date!${CRS}\n"
|
||||||
echo -e " ${CYN}Local Version :\t${CRS}${LOCAL_VERSION}"
|
echo -e " ${CYN}Local Version :\t${CRS}${LOCAL_VERSION}"
|
||||||
echo -e " ${CYN}$APP_SOURCE Version :\t${CRS}${APP_SOURCE_VERSION}\n"
|
echo -e " ${CYN}$SOURCE Version :\t${CRS}${GIT_VERSION}\n"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
elif [ "$APP_SOURCE_VERSION_NUM" -gt "$LOCAL_VERSION_NUM" ] ; then
|
elif [ "$GIT_VERSION_NUM" -gt "$LOCAL_VERSION_NUM" ] ; then
|
||||||
echo -e "\n ${YEL}$APP_NAME_LONG is updatable!${CRS}\n"
|
echo -e "\n ${YEL}$APP_NAME_LONG is updatable!${CRS}\n"
|
||||||
echo -e " ${CYN}Local Version :\t${CRS}${LOCAL_VERSION}"
|
echo -e " ${CYN}Local Version :\t${CRS}${LOCAL_VERSION}"
|
||||||
echo -e " ${CYN}$APP_SOURCE Version :\t${CRS}${APP_SOURCE_VERSION}\n"
|
echo -e " ${CYN}$SOURCE Version :\t${CRS}${GIT_VERSION}\n"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e "\n ${RED}Version tags malformed or you are using a Beta version!${CRS}\n"
|
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}Local Version :\t${CRS}${LOCAL_VERSION}"
|
||||||
echo -e " ${CYN}$APP_SOURCE Version :\t${CRS}${APP_SOURCE_VERSION}\n"
|
echo -e " ${CYN}$SOURCE Version :\t${CRS}${GIT_VERSION}\n"
|
||||||
echo -e " ${RED}Update failed ... Exiting ...${CRS}\n"
|
echo -e " ${RED}Update failed ... Exiting ...${CRS}\n"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
|
|
@ -485,17 +338,16 @@ compare_version() {
|
||||||
help() {
|
help() {
|
||||||
echo -e "\n${LCY}${SCRIPT_NAME}${CRS}\n"
|
echo -e "\n${LCY}${SCRIPT_NAME}${CRS}\n"
|
||||||
echo -e "$APP_NAME_LONG installer & updater script\n"
|
echo -e "$APP_NAME_LONG installer & updater script\n"
|
||||||
echo -e "Syntax: $SCRIPT_FILE_NAME [ -i | -l | -a | -u | -r | -c | -s | -S | -h ]\n" # | -U |
|
echo -e "Syntax: $SCRIPT_FILE_NAME [ -i | -L | -u | -r | -c | -s | -h ]\n" # | -U | -S
|
||||||
echo -e "Options:\n"
|
echo -e "Options:\n"
|
||||||
echo -e "\t-i\tDownload & install $APP_NAME_LONG from $APP_SOURCE"
|
echo -e "\t-i\tDownload & install $APP_NAME_LONG from $SOURCE"
|
||||||
echo -e "\t-l\tCreate desktop launcher"
|
echo -e "\t-L\tCreate desktop launcher"
|
||||||
echo -e "\t-a\tCreate alias for $SCRIPT_FILE_NAME ${YEL}--> Working with zsh & bash${CRS}"
|
echo -e "\t-u\tDownload & update $APP_NAME_LONG from $SOURCE"
|
||||||
echo -e "\t-u\tDownload & update $APP_NAME_LONG from $APP_SOURCE"
|
|
||||||
#echo -e "\t-U\tEnable automatic updates on login ${RED}--> Not yet working${CRS}"
|
#echo -e "\t-U\tEnable automatic updates on login ${RED}--> Not yet working${CRS}"
|
||||||
echo -e "\t-r\tRemove $APP_NAME_LONG"
|
echo -e "\t-r\tRemove $APP_NAME_LONG"
|
||||||
echo -e "\t-c\tCompare local to remote version"
|
echo -e "\t-c\tCompare local to remote version"
|
||||||
echo -e "\t-s\tShow script version"
|
echo -e "\t-s\tShow script version"
|
||||||
echo -e "\t-S\tUpdate $SCRIPT_FILE_NAME"
|
#echo -e "\t-S\tUpdate script ${RED}--> Not yet working${CRS}"
|
||||||
echo -e "\t-h\tPrint this help page.\n"
|
echo -e "\t-h\tPrint this help page.\n"
|
||||||
echo -e "Configured locations:\n"
|
echo -e "Configured locations:\n"
|
||||||
echo -e "\t${CYN}${INSTALL_PATH}${CRS}\t\tInstall location"
|
echo -e "\t${CYN}${INSTALL_PATH}${CRS}\t\tInstall location"
|
||||||
|
|
@ -516,70 +368,73 @@ exit_clean() {
|
||||||
########## MAIN ##########
|
########## MAIN ##########
|
||||||
|
|
||||||
## GET OPTIONS
|
## GET OPTIONS
|
||||||
while getopts ":i,:l,:a,:u,:U,:r,:c,:s,:S,:h" OPTION ; do
|
while getopts ":i,:L,:u,:U,:r,:c,:s,:S,:h" OPTION ; do
|
||||||
case $OPTION in
|
case $OPTION in
|
||||||
i)
|
i)
|
||||||
echo -e "\n ${CYN}Installing $APP_NAME_LONG...${CRS}"
|
echo -e "\n ${YEL}Installing $APP_NAME_LONG...${CRS}"
|
||||||
dependency_check
|
dependency_check
|
||||||
|
local_check
|
||||||
install_helium
|
install_helium
|
||||||
exit_clean ;;
|
exit_clean
|
||||||
|
exit ;;
|
||||||
|
|
||||||
l)
|
L)
|
||||||
echo -e "\n ${CYN}Adding $APP_NAME_LONG launcher...${CRS}"
|
echo -e "\n ${YEL}Adding $APP_NAME_LONG launcher...${CRS}"
|
||||||
dependency_check
|
dependency_check
|
||||||
local_check
|
local_check
|
||||||
add_launcher
|
add_launcher
|
||||||
exit_clean ;;
|
exit_clean
|
||||||
|
|
||||||
a)
|
|
||||||
echo -e "\n ${CYN}Adding alias...${CRS}"
|
|
||||||
add_alias
|
|
||||||
exit ;;
|
exit ;;
|
||||||
|
|
||||||
u)
|
u)
|
||||||
echo -e "\n ${CYN}Updating $APP_NAME_LONG...${CRS}"
|
echo -e "\n ${YEL}Updating $APP_NAME_LONG...${CRS}"
|
||||||
dependency_check
|
dependency_check
|
||||||
local_check
|
local_check
|
||||||
update_helium
|
update_helium
|
||||||
exit_clean ;;
|
exit_clean
|
||||||
|
exit ;;
|
||||||
|
|
||||||
U)
|
U)
|
||||||
echo -e "\n ${CYN}Enabling automatic updates...${CRS}"
|
echo -e "\n ${YEL}Enabling automatic updates...${CRS}"
|
||||||
dependency_check
|
dependency_check
|
||||||
local_check
|
local_check
|
||||||
auto_update
|
auto_update
|
||||||
exit_clean ;;
|
exit_clean
|
||||||
|
exit ;;
|
||||||
|
|
||||||
r)
|
r)
|
||||||
echo -e "\n ${CYN}Removing $APP_NAME_LONG...${CRS}"
|
echo -e "\n ${YEL}Removing $APP_NAME_LONG...${CRS}"
|
||||||
remove_helium
|
remove_helium
|
||||||
exit ;;
|
exit ;;
|
||||||
|
|
||||||
c)
|
c)
|
||||||
echo -e "\n ${CYN}Comparing remote to local version...${CRS}"
|
echo -e "\n ${YEL}Comparing remote to local version...${CRS}"
|
||||||
dependency_check
|
dependency_check
|
||||||
local_check
|
local_check
|
||||||
compare_version
|
compare_version
|
||||||
exit_clean ;;
|
exit_clean
|
||||||
|
exit ;;
|
||||||
|
|
||||||
s)
|
s)
|
||||||
script_version
|
script_version
|
||||||
exit ;;
|
exit ;;
|
||||||
|
|
||||||
S)
|
S)
|
||||||
echo -e "\n ${CYN}Updating script...${CRS}"
|
echo -e "\n ${YEL}Updating script...${CRS}"
|
||||||
dependency_check
|
dependency_check
|
||||||
|
local_check
|
||||||
update_script
|
update_script
|
||||||
exit_clean ;;
|
exit_clean
|
||||||
|
exit ;;
|
||||||
|
|
||||||
h)
|
h)
|
||||||
help
|
help
|
||||||
exit ;;
|
exit;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
echo -e "\n${YEL}Option ${RED}$1${YEL} not recognized... Refer to help below!${CRS}"
|
echo -e "\n${YEL}Option ${RED}-t${YEL} not recognized... Refer to help below!${CRS}"
|
||||||
help
|
help
|
||||||
exit ;;
|
exit;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,268 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# HELIUM BOWSER AUTO UPDATE SCRIPT WITH LOGGING
|
|
||||||
########## PREREQUISITES ###########
|
|
||||||
set -e
|
|
||||||
|
|
||||||
## GLOBAL VARIABLES
|
|
||||||
APP_NAME="Helium"
|
|
||||||
APP_NAME_LONG="Helium Web Browser"
|
|
||||||
ARCH="x86_64"
|
|
||||||
FILE_EXTENSION="AppImage"
|
|
||||||
APP_SOURCE="GitHub"
|
|
||||||
SCRIPT_NAME="$APP_NAME Launcher Updater"
|
|
||||||
SCRIPT_FILE_NAME="helium_launcher_update.sh"
|
|
||||||
SCRIPT_VERSION="0.5.7"
|
|
||||||
DATE=$(date)
|
|
||||||
|
|
||||||
## LOCATIONS
|
|
||||||
TMP=/tmp/$APP_NAME
|
|
||||||
INSTALL_PATH=$HOME/.apps/$APP_NAME
|
|
||||||
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
|
|
||||||
ICON=$ASSET_PATH/icon/helium.png
|
|
||||||
SCRIPT_PATH=$HOME/.local/bin
|
|
||||||
|
|
||||||
## REMOTE LOCATIONS
|
|
||||||
REMOTE_REPO_BRANCH="main"
|
|
||||||
REMOTE_REPO_URL=https://lab.c95.org/fr4nz/helium-helper/raw/branch/$REMOTE_REPO_BRANCH
|
|
||||||
REMOTE_SCRIPT_URL=$REMOTE_REPO_URL/$SCRIPT_FILE_NAME
|
|
||||||
APP_SOURCE_URL=https://api.github.com/repos/imputnet/helium-linux/releases/latest
|
|
||||||
|
|
||||||
########## FUNCTIONS ###########
|
|
||||||
|
|
||||||
### DEPENDENCIES
|
|
||||||
cmd_query() {
|
|
||||||
local PACKAGE="$1"
|
|
||||||
|
|
||||||
if ! command -v "$PACKAGE" >/dev/null 2>&1 ; then
|
|
||||||
echo " - $PACKAGE" >> $TMP/missingDeps
|
|
||||||
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
dependency_check () {
|
|
||||||
DEPENDENCIES=("curl" "wget")
|
|
||||||
mkdir -p $TMP
|
|
||||||
|
|
||||||
for PACKAGE in "${DEPENDENCIES[@]}" ; do
|
|
||||||
cmd_query "$PACKAGE"
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
if ! [ -f "$LOG" ] ; then
|
|
||||||
mkdir -p $LOG_PATH
|
|
||||||
echo "########## $APP_NAME_LONG update log ##########" >> $LOG
|
|
||||||
echo >> $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"
|
|
||||||
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"
|
|
||||||
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"
|
|
||||||
exit
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
### UPDATE SCRIPT
|
|
||||||
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"
|
|
||||||
exit
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
REMOTE_SCRIPT_VERSION=$(curl -s $REMOTE_SCRIPT_URL | grep -m 1 "SCRIPT_VERSION" | tr -d 'SCRIPT_VERSION="')
|
|
||||||
|
|
||||||
### 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"
|
|
||||||
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"
|
|
||||||
exit
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
### COMPARE LOCAL & REMOTE VERSION
|
|
||||||
SCRIPT_VERSION_NUM=$(echo $SCRIPT_VERSION | tr -d .)
|
|
||||||
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"
|
|
||||||
|
|
||||||
elif [ "$REMOTE_SCRIPT_VERSION_NUM" -gt "$SCRIPT_VERSION_NUM" ] ; then
|
|
||||||
mv $SCRIPT_PATH/$SCRIPT_FILE_NAME $BACKUP_PATH/$SCRIPT_FILE_NAME.old
|
|
||||||
mkdir -p $TMP
|
|
||||||
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"
|
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
### UPDATE
|
|
||||||
update_helium() {
|
|
||||||
DOWNLOAD_URL=$(curl -s $APP_SOURCE_URL | grep "browser_download_url" | grep "$ARCH.$FILE_EXTENSION" | grep -v "zsync" | tr -d \" | awk '{print $2}')
|
|
||||||
APP_SOURCE_FILENAME=$(curl -s $APP_SOURCE_URL | grep "browser_download_url" | grep "$ARCH.$FILE_EXTENSION" | grep -v "zsync" | tr -d \" | awk '{print $2}' | awk -F'/' '{print $9}')
|
|
||||||
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}')
|
|
||||||
|
|
||||||
### 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"
|
|
||||||
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"
|
|
||||||
exit
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
### COMPARE LOCAL & REMOTE VERSION
|
|
||||||
LOCAL_VERSION_NUM=$(echo $LOCAL_VERSION | tr -d .)
|
|
||||||
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"
|
|
||||||
|
|
||||||
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
|
|
||||||
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
|
|
||||||
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"
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "${DATE} | Failed to update - Version tags malformed" >> $LOG
|
|
||||||
notify-send -i "$ICON" "Helium Helper" "Browser update failed! See log for details"
|
|
||||||
exit
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
### SCRIPT VERSION
|
|
||||||
script_version() {
|
|
||||||
echo -e "\n ${CYN}$APP_NAME_LONG Auto Update Script Version :${CRS} $SCRIPT_VERSION\n"
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
### SHOW LOG
|
|
||||||
show_log() {
|
|
||||||
if [ -f "$LOG" ] ; then
|
|
||||||
xdg-open $LOG
|
|
||||||
|
|
||||||
else
|
|
||||||
notify-send -i "$ICON" "Helium Helper" "No log created yet"
|
|
||||||
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
### HELP
|
|
||||||
help() {
|
|
||||||
echo -e "\n${LCY}$SCRIPT_NAME${CRS}\n"
|
|
||||||
echo -e "$APP_NAME_LONG launcher updater script\n"
|
|
||||||
echo -e "Description: Add functionality to $APP_NAME_LONG's launcher\n"
|
|
||||||
echo -e "Syntax: $SCRIPT_FILE_NAME [ -s | -S | -L | -h ]\n"
|
|
||||||
echo -e "Options:\n"
|
|
||||||
echo -e "\t-s\tShow script version"
|
|
||||||
echo -e "\t-S\tUpdate $SCRIPT_FILE_NAME"
|
|
||||||
echo -e "\t-L\tOpen log in default text editor"
|
|
||||||
echo -e "\t-h\tPrint this help page.\n"
|
|
||||||
echo -e "Configured locations:\n"
|
|
||||||
echo -e "\t${CYN}$INSTALL_PATH${CRS}\t\tInstall location"
|
|
||||||
echo -e "\t${CYN}$LOG_PATH${CRS}\tLog location"
|
|
||||||
echo -e "\t${CYN}$LAUNCHER_PATH${CRS}\tLauncher location"
|
|
||||||
echo -e "\t${CYN}$SCRIPT_PATH${CRS}\t\t\tScript location\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
### EXIT CLEAN
|
|
||||||
exit_clean() {
|
|
||||||
if [ -d "$TMP" ] ; then
|
|
||||||
rm -rf $TMP
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
|
|
||||||
########## MAIN ##########
|
|
||||||
|
|
||||||
## GET OPTIONS
|
|
||||||
while getopts ":a,:s,:S,:L,:h" OPTION ; do
|
|
||||||
case $OPTION in
|
|
||||||
|
|
||||||
S)
|
|
||||||
dependency_check
|
|
||||||
update_script
|
|
||||||
exit_clean ;;
|
|
||||||
|
|
||||||
s)
|
|
||||||
script_version
|
|
||||||
exit_clean ;;
|
|
||||||
|
|
||||||
L)
|
|
||||||
show_log
|
|
||||||
exit_clean ;;
|
|
||||||
|
|
||||||
h)
|
|
||||||
help
|
|
||||||
exit_clean ;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
echo -e "\n${YEL}Option ${RED}$1${YEL} not recognized... Refer to help below!${CRS}"
|
|
||||||
help
|
|
||||||
exit_clean ;;
|
|
||||||
|
|
||||||
esac
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
## DEPENDENCY CHECK
|
|
||||||
dependency_check
|
|
||||||
|
|
||||||
## UPDATE
|
|
||||||
update_helium
|
|
||||||
|
|
||||||
## CLEAN
|
|
||||||
exit_clean
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue