Compare commits
82 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f253e87973 | |||
| da7ca0c5f7 | |||
| dd615058c4 | |||
| dc3e69071e | |||
| 969f8b2eb5 | |||
| 4db4454a90 | |||
| 1d8d70c54b | |||
| 685cd78993 | |||
| c6f2f2bd3f | |||
| 69a14a82b6 | |||
| 3fa31db0ff | |||
| e608de8eed | |||
| 66054bd6b1 | |||
| 88510e971a | |||
| 1a253d6de5 | |||
| ebc4809ef3 | |||
| 2cae941eea | |||
| c12ea4e331 | |||
| 6eaf261db2 | |||
| 90dd1ea68b | |||
| 6c91e896bc | |||
| 3d4c84ef6c | |||
| f2335fd148 | |||
|
|
434f8b0b70 | ||
| 65453aa3ed | |||
| 3e699cb4db | |||
| c86f164430 | |||
| eb18320180 | |||
| c49679dd35 | |||
| 4910932c43 | |||
| cf7d8d009c | |||
| 834f929161 | |||
| a88ba74608 | |||
| 1090a4cdd0 | |||
| abc1016148 | |||
| f8498fb44f | |||
| e00b22378e | |||
| 805a80ff89 | |||
| 35ddd28a3b | |||
| 5d9d0cb515 | |||
| 8b2473ee3d | |||
| 6d9b818911 | |||
| 6d190c60bb | |||
| 36d673fcd1 | |||
| 3dfa62a71a | |||
| 48b8553198 | |||
| 950ceaf898 | |||
| bb47814565 | |||
| e216d9cc4b | |||
| d480d5c657 | |||
| a638306f2f | |||
| 5cc2a37985 | |||
| 08982535e7 | |||
| 2995cc29b1 | |||
| 75c5bffbe9 | |||
| 17d2815039 | |||
| 2d8c254621 | |||
| 0bdf836eb3 | |||
| f79c997f16 | |||
| 5aa8ee1915 | |||
| c1ec805b1b | |||
| 99755d40fc | |||
| 1a3927e689 | |||
| a97e77a370 | |||
| f072d0608c | |||
| 62d0671f03 | |||
| 4f1d453e9e | |||
| d1da40494b | |||
| 9586095f86 | |||
| f42029b0f6 | |||
| 57c0770950 | |||
| 6dccf9c1e4 | |||
| 2f8d7b8246 | |||
| 69378db024 | |||
| e394371b2c | |||
| a03f59d3ee | |||
| 5ad81a5997 | |||
| 4a6741f581 | |||
| 5e26f8e43b | |||
| 70a5db2ba2 | |||
| a0ac02743a | |||
| 5a0913a29a |
8 changed files with 928 additions and 523 deletions
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
test.sh
|
||||||
|
devdoc.md
|
||||||
|
binaries
|
||||||
102
README.md
102
README.md
|
|
@ -1,19 +1,93 @@
|
||||||
# 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... It's supposed to run in user space and is (Linux) distro independent I suppose.
|
||||||
|
|
||||||
|
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_
|
||||||
|
- Default install directory = `$HOME/.apps/Helium`
|
||||||
|
```sh
|
||||||
|
./helium_helper.sh -i
|
||||||
|
```
|
||||||
|
|
||||||
|
**OPTIONAL** : Add alias to `.shellrc` | _working in zsh, bash & fish_
|
||||||
|
- Default alias = `update-helium`
|
||||||
|
```sh
|
||||||
|
./helium_helper.sh -a
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
### 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.
|
||||||
|
|
||||||
|
**Terminal**
|
||||||
|
|
||||||
|
Updating can also be done by running:
|
||||||
|
- Update Helium Browser
|
||||||
|
```sh
|
||||||
|
./helium_helper.sh -u
|
||||||
|
```
|
||||||
|
- Update Helium Helper
|
||||||
|
```sh
|
||||||
|
./helium_helper.sh -S
|
||||||
|
```
|
||||||
|
---
|
||||||
|
### Backing up
|
||||||
|
Backing up, by default, pulls all important files, folders & configuration and compresses an archive, which is stored in `$HOME/.apps/Helium/assets`
|
||||||
|
- Default backup
|
||||||
|
```sh
|
||||||
|
./helium_helper.sh -b
|
||||||
|
```
|
||||||
|
- Backup to custom path
|
||||||
|
```sh
|
||||||
|
./helium_helper.sh -b </PATH/TO/DESTINATION>
|
||||||
|
```
|
||||||
|
**NOTE:** The backup path specified won't be overridden within the script yet. Working on it...
|
||||||
|
|
||||||
|
**Since this script is interactive, it doesn't keep logs.**
|
||||||
## Overview
|
## Overview
|
||||||
### Helium_Helper.sh
|
### Helium_Helper.sh
|
||||||
- Interactive installer and updater script
|
- Interactive installer, updater & configuration script
|
||||||
- Installs to `/home/<USER>/.apps/Helium` | changeable in line 28 `INSTALL_PATH`
|
- Installs to `$HOME/.apps/Helium` | changeable in line 32 `INSTALL_PATH`
|
||||||
- Assumes:
|
- Assumes:
|
||||||
- Presence of `/home/<USER>/.apps/Helium` when updating | changeable in line 28 `INSTALL_PATH`
|
- Presence of `$HOME/.apps/Helium` when updating | changeable in line 32 `INSTALL_PATH`
|
||||||
- Executable named `Helium.AppImage` | for convenience so launchers don't have to be edited at each update
|
- Executable named `Helium.AppImage`
|
||||||
- Keeps prior AppImage as `Helium.old` which will be replaced at every update
|
- Keeps backup archives from
|
||||||
- Adds desktop launcher to `/home/<USER>/.local/share/applications`
|
- `Helium.AppImage`
|
||||||
|
- `helium_helper.sh`
|
||||||
### Helium_Auto_Update.sh
|
- `helium_launcher_update.sh`
|
||||||
- Automatic updater script
|
- `Helium.desktop`
|
||||||
- Installs to `/home/<USER>/.apps/Helium` | changeable in line 8 `INSTALL_PATH`
|
- `net.imput.helium`
|
||||||
|
- Adds desktop launcher to `$HOME/.local/share/applications`
|
||||||
|
- Adds options to launcher which are run by `helium_launcher_updater.sh`
|
||||||
|
- Update Helium
|
||||||
|
- Update Script
|
||||||
|
- View Log
|
||||||
|
- 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 8 `INSTALL_PATH`
|
- Presence of `$HOME/.apps/Helium` when updating | changeable in line 22 `INSTALL_PATH`
|
||||||
- Executable named `helium-browser.AppImage` | for convenience so launchers don't have to be edited at each update
|
- Executable named `Helium.AppImage`
|
||||||
- Loggs to `/home/<USER>/.apps/Helium/updateLog`
|
- Loggs to `$HOME/.apps/Helium/assets/logs`
|
||||||
- Keeps prior AppImage as `helium-browser.OldAppImage` which will be replaced at every update
|
- Keeps backup archives from
|
||||||
|
- `Helium.AppImage`
|
||||||
|
- `helium_helper.sh`
|
||||||
|
- `helium_launcher_update.sh`
|
||||||
|
- `Helium.desktop`
|
||||||
|
- `net.imput.helium`
|
||||||
|
- 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;
|
Actions=new-window;new-private-window;update;update-script;show-log;
|
||||||
X-AppImage-Version=%APP_VERSION%
|
X-AppImage-Version=%APP_VERSION%
|
||||||
|
|
||||||
[Desktop Action new-window]
|
[Desktop Action new-window]
|
||||||
|
|
@ -24,4 +24,12 @@ Exec=%APP_LOCATION% --incognito
|
||||||
|
|
||||||
[Desktop Action update]
|
[Desktop Action update]
|
||||||
Name=Update Helium
|
Name=Update Helium
|
||||||
Exec=%AUTO_UPDATE_SCRIPT%
|
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%
|
||||||
3
assets/workflow/merge.yml
Normal file
3
assets/workflow/merge.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
on:
|
||||||
|
pull_requests:
|
||||||
|
pull_request_target:
|
||||||
|
|
@ -1,235 +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"
|
|
||||||
SOURCE="GitHub"
|
|
||||||
SCRIPT_NAME="$APP_NAME silent updater"
|
|
||||||
SCRIPT_FILE_NAME="helium_auto_update.sh"
|
|
||||||
SCRIPT_VERSION="0.5.4"
|
|
||||||
ALIAS="auto-update-helium"
|
|
||||||
|
|
||||||
## LOCATIONS
|
|
||||||
TMP=/tmp/$APP_NAME
|
|
||||||
INSTALL_PATH=$HOME/.apps/$APP_NAME
|
|
||||||
CONFIG_PATH=$INSTALL_PATH/assets
|
|
||||||
BACKUP_PATH=$INSTALL_PATH/assets/backup
|
|
||||||
LOG_PATH=$INSTALL_PATH/assets/logs
|
|
||||||
LOG=$LOG_PATH/log
|
|
||||||
LAUNCHER_PATH=$HOME/.local/share/applications
|
|
||||||
SCRIPT_PATH=$HOME/.local/bin
|
|
||||||
DATE=$(date)
|
|
||||||
|
|
||||||
########## 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 ! [ -d "$LOG_PATH" ] ; then
|
|
||||||
mkdir -p $LOG_PATH
|
|
||||||
echo "${DATE} | Log created" >> $LOG
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f "$TMP/missingDeps" ] ; then
|
|
||||||
MISSING=$(cat $TMP/missingDeps)
|
|
||||||
echo "${DATE} | Failed to update - missing dependencies : $MISSING" >> $LOG
|
|
||||||
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
|
|
||||||
exit
|
|
||||||
|
|
||||||
elif ! [ -f "$INSTALL_PATH/$APP_NAME.AppImage" ] ; then
|
|
||||||
echo "${DATE} | Failed to update - Local $APP_NAME AppImage not found" >> $LOG
|
|
||||||
exit
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
### UPDATE SCRIPT
|
|
||||||
remote_script_check() {
|
|
||||||
REMOTE_SCRIPT_URL=https://lab.c95.org/fr4nz/helium-helper/raw/branch/main/$SCRIPT_FILE_NAME
|
|
||||||
mkdir -p $TMP
|
|
||||||
wget -P $TMP $REMOTE_SCRIPT_URL -q
|
|
||||||
chmod +x $TMP/$SCRIPT_FILE_NAME
|
|
||||||
}
|
|
||||||
|
|
||||||
update_script() {
|
|
||||||
remote_script_check
|
|
||||||
|
|
||||||
### CHECK FOR LOCAL SCRIPT
|
|
||||||
if ! [ -f "$SCRIPT_PATH/$SCRIPT_FILE_NAME" ] ; then
|
|
||||||
echo "${DATE} | Failed to update script - local file not found" >> $LOG
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
REMOTE_SCRIPT_VERSION=$($TMP/$SCRIPT_FILE_NAME -s | awk '{print $8}' | tr -d '\n' )
|
|
||||||
|
|
||||||
### CHECK FOR EMPTY VERSION TAGS
|
|
||||||
if [ -z "$SCRIPT_VERSION" ] ; then
|
|
||||||
echo "${DATE} | Failed to update script - Empty version tag --> local" >> $LOG
|
|
||||||
|
|
||||||
elif [ -z "$REMOTE_SCRIPT_VERSION" ] ; then
|
|
||||||
echo "${DATE} | Failed to update script - Empty version tag --> $SOURCE" >> $LOG
|
|
||||||
|
|
||||||
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
|
|
||||||
:
|
|
||||||
|
|
||||||
elif [ "$REMOTE_SCRIPT_VERSION_NUM" -gt "$SCRIPT_VERSION_NUM" ] ; then
|
|
||||||
mv $SCRIPT_PATH/$SCRIPT_FILE_NAME $BACKUP_PATH/$SCRIPT_FILE_NAME.old
|
|
||||||
mv $TMP/$SCRIPT_FILE_NAME $SCRIPT_PATH
|
|
||||||
echo "${DATE} | Script updated" >> $LOG
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "${DATE} | Failed to update - Malformed version tags" >> $LOG
|
|
||||||
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
### UPDATE
|
|
||||||
update_helium() {
|
|
||||||
#update_script ### NEEDS REVIEW
|
|
||||||
|
|
||||||
LOCAL_VERSION=$($INSTALL_PATH/$APP_NAME.AppImage --version | 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
|
|
||||||
if [[ -z "$GIT_VERSION" ]] ; then
|
|
||||||
echo "${DATE} | Failed to update - Empty version tag --> $SOURCE" >> $LOG
|
|
||||||
exit
|
|
||||||
|
|
||||||
elif [[ -z "$LOCAL_VERSION" ]] ; then
|
|
||||||
echo "${DATE} | Failed to update - Empty version tag --> LOCAL" >> $LOG
|
|
||||||
exit
|
|
||||||
|
|
||||||
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
|
|
||||||
:
|
|
||||||
|
|
||||||
elif [ "$GIT_VERSION_NUM" -gt "$LOCAL_VERSION_NUM" ] ; then
|
|
||||||
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}')
|
|
||||||
mkdir -p $TMP $BACKUP_PATH
|
|
||||||
wget -P $TMP $GIT_URL -q --show-progress
|
|
||||||
chmod +x $TMP/$GIT_FILENAME
|
|
||||||
if [ -f "$BACKUP_PATH/$APP_NAME.old" ] ; then
|
|
||||||
rm $BACKUP_PATH/$APP_NAME.old
|
|
||||||
fi
|
|
||||||
mv $INSTALL_PATH/$APP_NAME.AppImage $BACKUP_PATH/$APP_NAME.old
|
|
||||||
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.AppImage --version | awk '{print $2}')|" $LAUNCHER_PATH/$APP_NAME.desktop
|
|
||||||
echo "${DATE} | $APP_NAME updated to ${GIT_VERSION}" >> $LOG
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "${DATE} | Failed to update - Version tags malformed" >> $LOG
|
|
||||||
exit
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
### SCRIPT VERSION
|
|
||||||
script_version() {
|
|
||||||
echo -e "\n ${CYN}$APP_NAME_LONG Helper Script Version :${CRS} $SCRIPT_VERSION\n"
|
|
||||||
exit
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
### HELP
|
|
||||||
help() {
|
|
||||||
echo -e "\n${LCY}${SCRIPT_NAME}${CRS}\n"
|
|
||||||
echo -e "$APP_NAME_LONG automatic updater script\n"
|
|
||||||
echo -e "Syntax: $SCRIPT_FILE_NAME [ -a | -s | -h ]\n"
|
|
||||||
echo -e "Options:\n"
|
|
||||||
echo -e "\t-a\tCreate alias for $SCRIPT_FILE_NAME ${YEL}--> Working with zsh${CRS}"
|
|
||||||
echo -e "\t-s\tShow script version"
|
|
||||||
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}${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,:h" OPTION ; do
|
|
||||||
case $OPTION in
|
|
||||||
|
|
||||||
a)
|
|
||||||
add_alias
|
|
||||||
exit ;;
|
|
||||||
|
|
||||||
s)
|
|
||||||
script_version
|
|
||||||
exit ;;
|
|
||||||
|
|
||||||
h)
|
|
||||||
help
|
|
||||||
exit ;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
echo -e "\n${YEL}Option ${RED}$1${YEL} not recognized... Refer to help below!${CRS}"
|
|
||||||
help
|
|
||||||
exit ;;
|
|
||||||
|
|
||||||
esac
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
## DEPENDENCY CHECK
|
|
||||||
dependency_check
|
|
||||||
|
|
||||||
## UPDATE
|
|
||||||
update_helium
|
|
||||||
|
|
||||||
## CLEAN
|
|
||||||
exit_clean
|
|
||||||
658
helium_helper.sh
658
helium_helper.sh
|
|
@ -1,7 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Helium BOWSER INSTALL & UPDATE SCRIPT ---> INTERACTIVE
|
# Helium BOWSER INSTALL & UPDATE SCRIPT ---> INTERACTIVE
|
||||||
|
|
||||||
########## PREREQUISITES ###########
|
########## PREREQUISITES ###########
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
|
@ -11,43 +9,52 @@ YEL="\e[0;33m"
|
||||||
RED="\e[0;31m"
|
RED="\e[0;31m"
|
||||||
GRN="\e[0;32m"
|
GRN="\e[0;32m"
|
||||||
LCY="\e[1;36m"
|
LCY="\e[1;36m"
|
||||||
|
WHT="\e[1;37m"
|
||||||
CRS="\e[0m"
|
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"
|
||||||
SOURCE="GitHub"
|
FILE_EXTENSION="AppImage"
|
||||||
|
APP_SOURCE="GitHub"
|
||||||
|
ARCH_OVERRIDE=""
|
||||||
|
BACKUP_METHOD="full"
|
||||||
|
BACKUP_COMPRESSION_OVERRIDE=""
|
||||||
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_auto_update.sh"
|
AUTO_SCRIPT_FILE_NAME="helium_launcher_update.sh"
|
||||||
SCRIPT_VERSION="0.5.4"
|
SCRIPT_VERSION="0.5.9.1"
|
||||||
ALIAS="update-helium"
|
ALIAS="update-helium"
|
||||||
|
DATE=$(date +"%d%m%y")
|
||||||
|
|
||||||
## LOCATIONS
|
## LOCATIONS
|
||||||
TMP=/tmp/$APP_NAME
|
TMP=/tmp/$APP_NAME
|
||||||
INSTALL_PATH=$HOME/.apps/$APP_NAME
|
INSTALL_PATH=$HOME/.apps/$APP_NAME
|
||||||
CONFIG_PATH=$INSTALL_PATH/assets
|
APP_CONFIG_PATH=$HOME/.config/net.imput.helium
|
||||||
BACKUP_PATH=$INSTALL_PATH/assets/backup
|
ASSET_PATH=$INSTALL_PATH/assets
|
||||||
LOG_PATH=$INSTALL_PATH/assets/logs
|
BACKUP_PATH=$ASSET_PATH/backup
|
||||||
|
LOG_PATH=$ASSET_PATH/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="stable"
|
||||||
|
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 ###########
|
||||||
|
|
||||||
### DEPENDENCIES
|
### DEPENDENCIES
|
||||||
cmd_query() {
|
cmd_query() {
|
||||||
local PACKAGE="$1"
|
if ! command -v $PACKAGE > /dev/null 2>&1 ; then
|
||||||
|
|
||||||
if ! command -v "$PACKAGE" >/dev/null 2>&1 ; then
|
|
||||||
echo " - $PACKAGE" >> $TMP/missingDeps
|
echo " - $PACKAGE" >> $TMP/missingDeps
|
||||||
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
dependency_check () {
|
dependency_check () {
|
||||||
DEPENDENCIES=("curl" "wget")
|
DEPENDENCIES=("curl" "wget" "tar")
|
||||||
mkdir -p $TMP
|
mkdir -p $TMP
|
||||||
|
|
||||||
for PACKAGE in "${DEPENDENCIES[@]}" ; do
|
for PACKAGE in "${DEPENDENCIES[@]}" ; do
|
||||||
|
|
@ -57,60 +64,92 @@ dependency_check () {
|
||||||
|
|
||||||
if [ -f "$TMP/missingDeps" ] ; then
|
if [ -f "$TMP/missingDeps" ] ; then
|
||||||
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 " ${RED}Following dependencies are missing :\n\n${CRS}$MISSING\n\n ${CYN}Please install and re-run script !${CRS}\n"
|
||||||
exit_clean
|
exit_clean
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
### SHELL CHECK
|
||||||
|
shell_query() {
|
||||||
|
if [ "$(echo $SHELL | grep "$SHELL_OPTION")" ] ; then
|
||||||
|
ACTIVE_SHELL=$SHELL_OPTION
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
shell_check() {
|
||||||
|
SHELLS=("bash" "fish" "zsh")
|
||||||
|
|
||||||
|
for SHELL_OPTION in "${SHELLS[@]}" ; do
|
||||||
|
shell_query "$SHELL_OPTION"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
### ARCH CHECK
|
||||||
|
arch_check() {
|
||||||
|
if [ "$ARCH_OVERRIDE" ] ; then
|
||||||
|
ARCH=$ARCH_OVERRIDE
|
||||||
|
|
||||||
|
else
|
||||||
|
ARCH=$(uname -m)
|
||||||
|
if [ "$ARCH" == "aarch64" ] ; then
|
||||||
|
ARCH="arm64"
|
||||||
|
|
||||||
|
elif [ "$ARCH" == "amd64" ] ; then
|
||||||
|
ARCH="x86_64"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [[ "$ARCH" == "arm64" || "$ARCH" == "x86_64" ]] ; then
|
||||||
|
echo -e "\n ${CYN}$ARCH ${RED}unsupported! Only ${CYN}x86_68 ${RED}or ${CYN}arm64 ${RED}architecture are supported!${CRS}\n"
|
||||||
|
exit
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### CHECK LOCAL INSTALL
|
### CHECK LOCAL INSTALL
|
||||||
local_check() {
|
local_check() {
|
||||||
if ! [ -d "$INSTALL_PATH" ] ; then
|
if ! [ -d "$INSTALL_PATH" ] ; then
|
||||||
echo -e "\n ${RED}$APP_NAME_LONG directory not found!${CRS}"
|
echo -e "\n ${YEL}$APP_NAME_LONG directory not found!${CRS}\n"
|
||||||
install_helium
|
install_application
|
||||||
exit
|
exit
|
||||||
|
|
||||||
elif ! [ -f "$INSTALL_PATH/$APP_NAME.AppImage" ] ; then
|
elif ! [ -f "$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION" ] ; then
|
||||||
echo -e "\n ${RED}$APP_NAME_LONG directory found but no executable named ${CYN}$APP_NAME.AppImage${RED}!${CRS}"
|
echo -e "\n ${YEL}$APP_NAME_LONG directory found but no executable named ${CYN}$APP_NAME.$FILE_EXTENSION${YEL}!${CRS}\n"
|
||||||
install_helium
|
install_application
|
||||||
exit
|
exit
|
||||||
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### INSTALL
|
### INSTALL
|
||||||
install_helium() {
|
install_application() {
|
||||||
if [ -f "$INSTALL_PATH/$APP_NAME.AppImage" ] ; then
|
if [ -f "$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION" ] ; then
|
||||||
echo -e "\n ${CYN}$APP_NAME_LONG AppImage found! Trying to update...${CRS}"
|
echo -e " ${YEL}$APP_NAME_LONG AppImage found! Trying to update...${CRS}"
|
||||||
update_helium
|
update_application
|
||||||
exit
|
exit
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
while true ; do
|
while true ; do
|
||||||
read -p " Download and install $APP_NAME_LONG from $SOURCE? (Y/n) : " CONFIRM_INSTALL
|
read -p " Download and install $APP_NAME_LONG from $APP_SOURCE? (Y/n) : " CONFIRM_INSTALL
|
||||||
echo
|
|
||||||
|
|
||||||
if [[ "$CONFIRM_INSTALL" == "" || "$CONFIRM_INSTALL" == "y" || "$CONFIRM_INSTALL" == "Y" ]] ; then
|
if [[ "$CONFIRM_INSTALL" == "" || "$CONFIRM_INSTALL" == "y" || "$CONFIRM_INSTALL" == "Y" ]] ; then
|
||||||
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}')
|
DOWNLOAD_URL=$(curl -s $APP_SOURCE_URL | grep "browser_download_url" | grep "$ARCH.$FILE_EXTENSION" | 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}')
|
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}')
|
||||||
wget -P $TMP $GIT_URL -q --show-progress
|
echo -e "\n - Downloading ${CYN}$APP_SOURCE_FILENAME${CRS}..."
|
||||||
chmod +x $TMP/$GIT_FILENAME
|
wget -P $TMP $DOWNLOAD_URL -q
|
||||||
|
chmod +x $TMP/$APP_SOURCE_FILENAME
|
||||||
mkdir -p $INSTALL_PATH
|
mkdir -p $INSTALL_PATH
|
||||||
mv $TMP/$GIT_FILENAME $INSTALL_PATH/$APP_NAME.AppImage
|
mv $TMP/$APP_SOURCE_FILENAME $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION
|
||||||
add_launcher
|
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
|
break
|
||||||
|
|
||||||
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}Cancelled!${CRS}\n"
|
||||||
break
|
break
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e " ${YEL}Invalid response!${CRS}\n"
|
echo -e "\n ${YEL}Invalid response!${CRS}\n"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -119,31 +158,35 @@ 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 ${YEL}${APP_NAME}.desktop already exists!${CRS}"
|
||||||
|
|
||||||
elif [ -f "$INSTALL_PATH/$APP_NAME.AppImage" ] ; then
|
elif [ -f "$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION" ] ; then
|
||||||
while true ; do
|
while true ; do
|
||||||
echo
|
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
|
||||||
|
|
||||||
if [[ "$CONFIRM_LAUNCHER" == "" || "$CONFIRM_LAUNCHER" == "y" || "$CONFIRM_LAUNCHER" == "Y" ]] ; then
|
if [[ "$CONFIRM_LAUNCHER" == "" || "$CONFIRM_LAUNCHER" == "y" || "$CONFIRM_LAUNCHER" == "Y" ]] ; then
|
||||||
LAUNCHER_URL=https://lab.c95.org/fr4nz/helium-helper/raw/branch/main/assets/launcher/helium.desktop.template
|
LAUNCHER_URL=$REMOTE_REPO_URL/assets/launcher/helium.desktop.template
|
||||||
ICON_URL=https://lab.c95.org/fr4nz/helium-helper/raw/branch/main/assets/icon/helium.png
|
ICON_URL=$REMOTE_REPO_URL/assets/icon/helium.png
|
||||||
AUTO_SCRIPT_URL=https://lab.c95.org/fr4nz/helium-helper/raw/branch/main/$AUTO_SCRIPT_FILE_NAME
|
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 $CONFIG_PATH/icon
|
mkdir -p $LAUNCHER_PATH $SCRIPT_PATH $BACKUP_PATH $ASSET_PATH/icon
|
||||||
if ! [ -f "$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME" ] ; then
|
if ! [ -f "$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME" ] ; then
|
||||||
wget -P $TMP $AUTO_SCRIPT_URL -q --show-progress
|
echo -e "\n - Downloading ${CYN}$AUTO_SCRIPT_FILE_NAME${CRS}..."
|
||||||
|
wget -P $TMP $AUTO_SCRIPT_URL -q
|
||||||
chmod +x $TMP/$AUTO_SCRIPT_FILE_NAME
|
chmod +x $TMP/$AUTO_SCRIPT_FILE_NAME
|
||||||
mv $TMP/$AUTO_SCRIPT_FILE_NAME $SCRIPT_PATH
|
mv $TMP/$AUTO_SCRIPT_FILE_NAME $SCRIPT_PATH
|
||||||
fi
|
fi
|
||||||
|
|
||||||
wget -P $TMP $LAUNCHER_URL -q --show-progress
|
echo -e "\n - Downloading ${CYN}launcher files${CRS}..."
|
||||||
wget -P $TMP $ICON_URL -q --show-progress
|
wget -P $TMP $LAUNCHER_URL -q
|
||||||
sed -i "s|%APP_LOCATION%|$INSTALL_PATH/$APP_NAME.AppImage|" $TMP/helium.desktop.template
|
wget -P $TMP $ICON_URL -q
|
||||||
sed -i "s|%ICON_LOCATION%|$CONFIG_PATH/icon/helium.png|" $TMP/helium.desktop.template
|
sed -i "s|%APP_LOCATION%|$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION|" $TMP/helium.desktop.template
|
||||||
|
sed -i "s|%ICON_LOCATION%|$ASSET_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|%AUTO_UPDATE_SCRIPT%|$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME|" $TMP/helium.desktop.template
|
sed -i "s|%QUIET_UPDATE_SCRIPT%|$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME|" $TMP/helium.desktop.template
|
||||||
|
sed -i "s|%SCRIPT_UPDATE%|$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME -S|" $TMP/helium.desktop.template
|
||||||
|
sed -i "s|%OPEN_LOG_EDITOR%|$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME -L|" $TMP/helium.desktop.template
|
||||||
mv $TMP/helium.desktop.template $LAUNCHER_PATH/$APP_NAME.desktop
|
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}"
|
echo -e "\n ${GRN}$APP_NAME_LONG launcher is set up!${CRS}"
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|
@ -153,138 +196,331 @@ add_launcher() {
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e " ${YEL}Invalid response!${CRS}\n"
|
echo -e " ${YEL}Invalid response!${CRS}\n"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e "\n ${RED}$APP_NAME_LONG AppImage not found! Can't add launcher...${CRS}"
|
echo -e "\n ${RED}$APP_NAME_LONG AppImage not found! Can't add launcher...${CRS}"
|
||||||
install_helium
|
install_application
|
||||||
exit
|
exit
|
||||||
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### ALIAS
|
### ALIAS
|
||||||
add_alias() { ### WORKS BUT NEEDS WORK --> CHECK SCRIPT PRESENCE FIRST
|
add_alias() {
|
||||||
if ! [ -f "$SCRIPT_PATH/$SCRIPT_FILE_NAME" ] ; then
|
if ! [ -f "$SCRIPT_PATH/$SCRIPT_FILE_NAME" ] ; then
|
||||||
mkdir -p $SCRIPT_PATH
|
mkdir -p $SCRIPT_PATH
|
||||||
wget -P $TMP $SCRIPT_URL -q
|
wget -P $TMP $REMOTE_SCRIPT_URL -q
|
||||||
chmod +x $TMP/$SCRIPT_FILE_NAME
|
chmod +x $TMP/$SCRIPT_FILE_NAME
|
||||||
mv $TMP/$SCRIPT_FILE_NAME $SCRIPT_PATH
|
mv $TMP/$SCRIPT_FILE_NAME $SCRIPT_PATH
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "$HOME/.zshrc" ] ; then
|
if [ "$ACTIVE_SHELL" == "zsh" ] ; then
|
||||||
echo "alias $ALIAS=\"$SCRIPT_PATH/$SCRIPT_FILE_NAME\"" >> $HOME/.zshrc
|
if [ "$(cat $HOME/.zshrc | grep "$ALIAS")" ] ; then
|
||||||
echo -e "\n ${LCY}$ALIAS ${GRN}added to${CRS} $HOME/.zshrc"
|
echo -e "\n ${LCY}$ALIAS${CRS} already present in ${CYN}$HOME/.zshrc${CRS}\n"
|
||||||
|
|
||||||
elif [ -f "$HOME/.bashrc" ] ; then
|
|
||||||
echo "alias $ALIAS=\"$SCRIPT_PATH/$SCRIPT_FILE_NAME\"" >> $HOME/.zshrc
|
|
||||||
echo -e "\n ${LCY}$ALIAS ${GRN}added to${CRS} $HOME/.bashrc"
|
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e "\n ${RED}No .bashrc like file found!${CRS}"
|
echo "### $APP_NAME_LONG Alias zsh ###" >> $HOME/.zshrc
|
||||||
|
echo "alias $ALIAS=\"$SCRIPT_PATH/$SCRIPT_FILE_NAME\"" >> $HOME/.zshrc
|
||||||
|
echo >> $HOME/.zshrc
|
||||||
|
echo -e "\n ${LCY}$ALIAS${CRS} added to ${CYN}$HOME/.zshrc${CRS}\n"
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ "$ACTIVE_SHELL" == "bash" ] ; then
|
||||||
|
if [ "$(cat $HOME/.bashrc | grep "$ALIAS")" ] ; then
|
||||||
|
echo -e "\n ${LCY}$ALIAS${CRS} already present in ${CYN}$HOME/.bashrc${CRS}\n"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "### $APP_NAME_LONG Alias bash ###" >> $HOME/.bashrc
|
||||||
|
echo "alias $ALIAS=\"$SCRIPT_PATH/$SCRIPT_FILE_NAME\"" >> $HOME/.bashrc
|
||||||
|
echo >> $HOME/.bashrc
|
||||||
|
echo -e "\n ${LCY}$ALIAS${CRS} added to ${CYN}$HOME/.bashrc${CRS}\n"
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ "$ACTIVE_SHELL" == "fish" ] ; then
|
||||||
|
if [ "$(cat $HOME/.config/fish/config.fish | grep "source $HOME/.config/fish/$ALIAS.fish")" ] ; then
|
||||||
|
echo -e "\n ${LCY}$ALIAS${CRS} already present in ${CYN}$HOME/.config/fish/config.fish${CRS}\n"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "### $APP_NAME_LONG Alias FISH ###" > $HOME/.config/fish/$ALIAS.fish
|
||||||
|
echo >> $HOME/.config/fish/$ALIAS.fish
|
||||||
|
echo "function $ALIAS" >> $HOME/.config/fish/$ALIAS.fish
|
||||||
|
echo " $SCRIPT_PATH/$SCRIPT_FILE_NAME \$argv" >> $HOME/.config/fish/$ALIAS.fish
|
||||||
|
echo "end" >> $HOME/.config/fish/$ALIAS.fish
|
||||||
|
echo >> $HOME/.config/fish/$ALIAS.fish
|
||||||
|
echo "source $HOME/.config/fish/$ALIAS.fish" >> $HOME/.config/fish/config.fish
|
||||||
|
echo -e "\n ${LCY}$ALIAS ${CRS}added to ${CYN}$HOME/.config/fish/config.fish${CRS}\n"
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo -e "\n ${LCY}$ACTIVE_SHELL${RED}shell is not yet supported!${CRS}\n"
|
||||||
|
echo -e " ${CRS}Working implementation are available for bash, zsh & fish!${CRS}\n"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### UPDATE
|
### UPDATE
|
||||||
update_helium() {
|
update_application() {
|
||||||
LOCAL_VERSION=$($INSTALL_PATH/$APP_NAME.AppImage --version | awk '{print $2}')
|
LOCAL_VERSION=$($INSTALL_PATH/$APP_NAME.$FILE_EXTENSION --version | 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}')
|
APP_SOURCE_VERSION=$(curl -s $APP_SOURCE_URL | grep "tag_name" | tr -d \", | awk '{print $2}')
|
||||||
|
|
||||||
### CHECK FOR EMPTY VERSION TAGS
|
### CHECK FOR EMPTY VERSION TAGS
|
||||||
if [ -z "$GIT_VERSION" ] ; then
|
if [ -z "$APP_SOURCE_VERSION" ] ; then
|
||||||
echo -e "\n ${RED}Empty version tag from ${CYN}$SOURCE${RED}! Can't compare, exiting...${CRS}"
|
echo -e "\n ${RED}Empty version tag from ${CYN}$APP_SOURCE${RED}! Can't compare, exiting...${CRS}"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
elif [ -z "$LOCAL_VERSION" ] ; then
|
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}"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
### COMPARE LOCAL & REMOTE VERSION
|
### COMPARE LOCAL & REMOTE VERSION
|
||||||
LOCAL_VERSION_NUM=$(echo $LOCAL_VERSION | tr -d .)
|
LOCAL_VERSION_NUM=$(echo $LOCAL_VERSION | tr -d .)
|
||||||
GIT_VERSION_NUM=$(echo $GIT_VERSION | tr -d .)
|
APP_SOURCE_VERSION_NUM=$(echo $APP_SOURCE_VERSION | tr -d .)
|
||||||
|
|
||||||
if [ "$GIT_VERSION" == "$LOCAL_VERSION" ] ; then
|
if [ "$APP_SOURCE_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 [ "$GIT_VERSION_NUM" -gt "$LOCAL_VERSION_NUM" ] ; then
|
elif [ "$APP_SOURCE_VERSION_NUM" -gt "$LOCAL_VERSION_NUM" ] ; then
|
||||||
echo -e "\n ${LCY}$APP_NAME_LONG is updatable!${CRS}\n"
|
echo -e "\n ${LCY}$APP_NAME_LONG is updatable!${CRS}\n"
|
||||||
echo -e " ${CYN}Local Version :\t${CRS}${LOCAL_VERSION}"
|
app_version_info
|
||||||
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 $SOURCE? (Y/n) : " CONFIRM
|
read -p " Download and update $APP_NAME_LONG from $APP_SOURCE? (Y/n) : " CONFIRM
|
||||||
echo
|
|
||||||
|
|
||||||
if [[ "$CONFIRM" == "" || "$CONFIRM" == "y" || "$CONFIRM" == "Y" ]] ; then
|
if [[ "$CONFIRM" == "" || "$CONFIRM" == "y" || "$CONFIRM" == "Y" ]] ; then
|
||||||
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}')
|
DOWNLOAD_URL=$(curl -s $APP_SOURCE_URL | grep "browser_download_url" | grep "$ARCH.$FILE_EXTENSION" | 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}')
|
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}')
|
||||||
mkdir -p $TMP $BACKUP_PATH
|
mkdir -p $TMP
|
||||||
wget -P $TMP $GIT_URL -q --show-progress
|
echo -e "\n - Downloading ${CYN}$APP_SOURCE_FILENAME${CRS}..."
|
||||||
chmod +x $TMP/$GIT_FILENAME
|
wget -P $TMP $DOWNLOAD_URL -q
|
||||||
if [ -f "$BACKUP_PATH/$APP_NAME.old" ] ; then
|
${BACKUP_METHOD}_backup
|
||||||
rm $BACKUP_PATH/$APP_NAME.old
|
chmod +x $TMP/$APP_SOURCE_FILENAME
|
||||||
fi
|
mv $TMP/$APP_SOURCE_FILENAME $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION
|
||||||
mv $INSTALL_PATH/$APP_NAME.AppImage $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
|
||||||
mv $TMP/$GIT_FILENAME $INSTALL_PATH/$APP_NAME.AppImage
|
echo -e " ${GRN}$APP_NAME_LONG is up-to-date!${CRS}\n"
|
||||||
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.AppImage --version | awk '{print $2}')|" $LAUNCHER_PATH/$APP_NAME.desktop
|
|
||||||
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}Cancelled!${CRS}\n"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e " ${YEL}Invalid response!${CRS}\n"
|
echo -e "\n ${YEL}Invalid response!${CRS}\n"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
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}"
|
app_version_info
|
||||||
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
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
### AUTOMATIC UPDATE --> TO DO
|
### BACKUP
|
||||||
auto_update() {
|
call_backup() {
|
||||||
if ! [ -f "$INSTALL_PATH/$APP_NAME.AppImage" ] ; then
|
if [ -f $BACKUP_PATH\/$APP_NAME\.$BACKUP_METHOD\.backup_* ] ; then
|
||||||
echo -e "\n ${RED}$APP_NAME AppImage not found! Can't add auto update script...${CRS}"
|
echo -e "\n ${CYN}A $BACKUP_METHOD backup already exists!${CRS}\n"
|
||||||
exit
|
|
||||||
|
while true ; do
|
||||||
|
read -p " Overwrite backup? (y/N) : " OVERWRITE_BACKUP
|
||||||
|
|
||||||
|
if [[ "$OVERWRITE_BACKUP" == "" || "$OVERWRITE_BACKUP" == "n" || "$OVERWRITE_BACKUP" == "N" ]] ; then
|
||||||
|
echo -e "\n ${YEL}Skipping backup process...${CRS}\n"
|
||||||
|
break
|
||||||
|
|
||||||
|
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
|
else
|
||||||
echo -e "\n ${RED}Not implemented yet...${CRS}"
|
echo -e "\n ${YEL}Invalid response!${CRS}\n"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
else
|
||||||
|
${BACKUP_METHOD}_backup
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
script_backup() {
|
||||||
|
if [ -d "$SCRIPT_PATH" ] ; then
|
||||||
|
BACKUPABLE=("$SCRIPT_PATH/$SCRIPT_FILE_NAME" "$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME")
|
||||||
|
echo -e "\n - ${CRS}Collecting files for ${CYN}$BACKUP_METHOD${CRS} backup...${CRS}"
|
||||||
|
backup_file_collector
|
||||||
|
pack_backup
|
||||||
|
|
||||||
|
else
|
||||||
|
echo -e " ${YEL}Nothing to back up...${CRS}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
app_backup() {
|
||||||
|
if [ -f "$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION" ] ; then
|
||||||
|
BACKUPABLE=("$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION")
|
||||||
|
echo -e "\n - ${CRS}Collecting files for ${CYN}$BACKUP_METHOD${CRS} backup...${CRS}"
|
||||||
|
backup_file_collector
|
||||||
|
pack_backup
|
||||||
|
|
||||||
|
else
|
||||||
|
echo -e " ${YEL}Nothing to back up...${CRS}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
config_backup() {
|
||||||
|
if [[ -d "$LAUNCHER_PATH" || -d $APP_CONFIG_PATH ]] ; then
|
||||||
|
BACKUPABLE=("$LAUNCHER_PATH/$APP_NAME.desktop" "$APP_CONFIG_PATH")
|
||||||
|
echo -e "\n - ${CRS}Collecting files for ${CYN}$BACKUP_METHOD${CRS} backup...${CRS}"
|
||||||
|
backup_file_collector
|
||||||
|
pack_backup
|
||||||
|
|
||||||
|
else
|
||||||
|
echo -e " ${YEL}Nothing to back up...${CRS}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
full_backup() {
|
||||||
|
if [[ -d "$INSTALL_PATH" || -d "$SCRIPT_PATH" || -d $APP_CONFIG_PATH ]] ; then
|
||||||
|
BACKUPABLE=("$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")
|
||||||
|
echo -e "\n - ${CRS}Collecting files for ${CYN}$BACKUP_METHOD${CRS} backup...${CRS}"
|
||||||
|
backup_file_collector
|
||||||
|
pack_backup
|
||||||
|
|
||||||
|
else
|
||||||
|
echo -e " ${YEL}Nothing to back up...${CRS}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pack_backup() {
|
||||||
|
if [ -d "$TMP/backup" ] ; then
|
||||||
|
CWD=$(pwd)
|
||||||
|
cd $TMP/backup
|
||||||
|
|
||||||
|
if [[ -f "*.sh" ]] ; then
|
||||||
|
chmod -x *.sh
|
||||||
|
|
||||||
|
elif [[ -f "*.$FILE_EXTENSION" ]] ; then
|
||||||
|
chmod -x *.$FILE_EXTENSION
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$BACKUP_COMPRESSION_OVERRIDE" ] ; then
|
||||||
|
BACKUP_COMPRESSION=$BACKUP_COMPRESSION_OVERRIDE
|
||||||
|
|
||||||
|
else
|
||||||
|
COMPRESSION_METHOD=("pbzip2" "gzip" "bzip2" "zip")
|
||||||
|
|
||||||
|
until [ "$BACKUP_COMPRESSION" ] ; do
|
||||||
|
for COMPRESSION_TYPE in ${COMPRESSION_METHOD[@]} ; do
|
||||||
|
|
||||||
|
if [ "$(command -v $COMPRESSION_TYPE) > /dev/null 2>&1" ] ; then
|
||||||
|
BACKUP_COMPRESSION=$COMPRESSION_TYPE
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\n - ${CRS}Packing backup archive with ${CYN}$BACKUP_COMPRESSION${CRS}...${CRS}\n"
|
||||||
|
|
||||||
|
if [ "$BACKUP_COMPRESSION" == "pbzip2" ] ; then
|
||||||
|
tar -cf $APP_NAME.$BACKUP_METHOD.backup_$DATE.tar * > /dev/null 2>&1
|
||||||
|
pbzip2 $APP_NAME.$BACKUP_METHOD.backup_$DATE.tar
|
||||||
|
mkdir -p $BACKUP_PATH
|
||||||
|
mv $APP_NAME.$BACKUP_METHOD.backup_$DATE.tar.bz2 $BACKUP_PATH
|
||||||
|
cd $TMP && rm -rf backup
|
||||||
|
|
||||||
|
elif [ "$BACKUP_COMPRESSION" == "gzip" ] ; then
|
||||||
|
tar -cf $APP_NAME.$BACKUP_METHOD.backup_$DATE.tar * > /dev/null 2>&1
|
||||||
|
gzip $APP_NAME.$BACKUP_METHOD.backup_$DATE.tar
|
||||||
|
mkdir -p $BACKUP_PATH
|
||||||
|
mv $APP_NAME.$BACKUP_METHOD.backup_$DATE.tar.gz $BACKUP_PATH
|
||||||
|
cd $TMP && rm -rf backup
|
||||||
|
|
||||||
|
elif [ "$BACKUP_COMPRESSION" == "bzip2" ] ; then
|
||||||
|
tar -cf $APP_NAME.$BACKUP_METHOD.backup_$DATE.tar * > /dev/null 2>&1
|
||||||
|
bzip2 $APP_NAME.$BACKUP_METHOD.backup_$DATE.tar
|
||||||
|
mkdir -p $BACKUP_PATH
|
||||||
|
mv $APP_NAME.$BACKUP_METHOD.backup_$DATE.tar.bz2 $BACKUP_PATH
|
||||||
|
cd $TMP && rm -rf backup
|
||||||
|
|
||||||
|
elif [ "$BACKUP_COMPRESSION" == "zip" ] ; then
|
||||||
|
tar -cf $APP_NAME.$BACKUP_METHOD.backup_$DATE.tar * > /dev/null 2>&1
|
||||||
|
zip -r $APP_NAME.$BACKUP_METHOD.backup_$DATE.tar.zip $APP_NAME.$BACKUP_METHOD.backup_$DATE.tar > /dev/null 2>&1
|
||||||
|
mkdir -p $BACKUP_PATH
|
||||||
|
mv $APP_NAME.$BACKUP_METHOD.backup_$DATE.tar.zip $BACKUP_PATH
|
||||||
|
cd $TMP && rm -rf backup
|
||||||
|
|
||||||
|
else
|
||||||
|
echo -e " ${YEL}No supported compression method detected! Copying backup uncompressed...${CRS}\n"
|
||||||
|
mkdir -p $BACKUP_PATH
|
||||||
|
mv $TMP/backup $BACKUP_PATH/$APP_NAME.$BACKUP_METHOD.backup_$DATE
|
||||||
|
cd $TMP && rm -rf backup
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e " - ${CRS}Backup stored in ${CYN}$BACKUP_PATH${CRS}...${CRS}\n"
|
||||||
|
cd $CWD
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### REMOVE
|
### REMOVE
|
||||||
remove_helium() {
|
remove_application() {
|
||||||
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 incl. backups, configuration and launcher? (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
|
REMOVABLE=("$INSTALL_PATH" "$LAUNCHER_PATH/$APP_NAME.desktop" "$APP_CONFIG_PATH" "$SCRIPT_PATH/$SCRIPT_FILE_NAME" "$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME")
|
||||||
if [ -f "$LAUNCHER_PATH/$APP_NAME.desktop" ] ; then
|
echo -e "\n - ${CRS}Removing ${CYN}$APP_NAME_LONG${CRS} files, directories and configuration...${CRS}"
|
||||||
rm $LAUNCHER_PATH/$APP_NAME.desktop
|
|
||||||
|
for RM_PATH in "${REMOVABLE[@]}" ; do
|
||||||
|
if [[ -f "$RM_PATH" || -d "$RM_PATH" ]] ; then
|
||||||
|
rm -rf "$RM_PATH"
|
||||||
fi
|
fi
|
||||||
echo -e "\n ${RED}$APP_NAME_LONG removed!${CRS}"
|
done
|
||||||
exit
|
|
||||||
|
shell_check
|
||||||
|
|
||||||
|
if [ "$ACTIVE_SHELL" == "zsh" ] ; then
|
||||||
|
if [ "$(cat $HOME/.zshrc | grep "$ALIAS")" ] ; then
|
||||||
|
sed -i "/$APP_NAME_LONG/d" $HOME/.zshrc
|
||||||
|
sed -i "/$ALIAS/d" $HOME/.zshrc
|
||||||
|
echo -e "\n - Alias removed from ${CYN}$ACTIVE_SHELL${CRS}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ "$ACTIVE_SHELL" == "bash" ] ; then
|
||||||
|
if [ "$(cat $HOME/.bashrc | grep "$ALIAS")" ] ; then
|
||||||
|
sed -i "/$APP_NAME_LONG/d" $HOME/.bashrc
|
||||||
|
sed -i "/$ALIAS/d" $HOME/.bashrc
|
||||||
|
echo -e "\n - Alias removed from ${CYN}$ACTIVE_SHELL${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 - Alias removed from ${CYN}$ACTIVE_SHELL${CRS}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\n ${YEL}$APP_NAME_LONG removed!${CRS}\n"
|
||||||
|
break
|
||||||
|
|
||||||
elif [[ "$CONFIRM_REMOVE" == "n" || "$CONFIRM_REMOVE" == "N" ]] ; then
|
elif [[ "$CONFIRM_REMOVE" == "n" || "$CONFIRM_REMOVE" == "N" ]] ; then
|
||||||
echo -e " ${RED}Cancelled!${CRS}"
|
echo -e " ${RED}Cancelled!${CRS}"
|
||||||
|
|
@ -292,37 +528,28 @@ remove_helium() {
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e " ${YEL}Invalid response!${CRS}\n"
|
echo -e " ${YEL}Invalid response!${CRS}\n"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e "\n ${RED}Can't remove $APP_NAME_LONG! ${YEL}$INSTALL_PATH ${RED}directory not found...${CRS}"
|
echo -e " ${RED}Can't remove $APP_NAME_LONG! ${CYN}$INSTALL_PATH ${RED}directory not found...${CRS}\n"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### 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 : ${CRS}$SCRIPT_VERSION\n"
|
||||||
exit
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
### UPDATE SCRIPT
|
### UPDATE SCRIPT
|
||||||
remote_script_check() {
|
scrip_version_info() {
|
||||||
REMOTE_SCRIPT_URL=https://lab.c95.org/fr4nz/helium-helper/raw/branch/main/$SCRIPT_FILE_NAME
|
echo -e " - ${CYN}Local Version :\t${CRS}$SCRIPT_VERSION"
|
||||||
mkdir -p $TMP
|
echo -e " - ${CYN}Remote Version :\t${CRS}$REMOTE_SCRIPT_VERSION"
|
||||||
wget -P $TMP $REMOTE_SCRIPT_URL -q
|
echo -e " - ${CYN}Update Branch :\t${CRS}$REMOTE_REPO_BRANCH\n"
|
||||||
chmod +x $TMP/$SCRIPT_FILE_NAME
|
|
||||||
}
|
}
|
||||||
|
|
||||||
update_script() {
|
update_script() {
|
||||||
remote_script_check
|
|
||||||
|
|
||||||
### CHECK FOR LOCAL SCRIPT
|
|
||||||
if ! [ -f "$SCRIPT_PATH/$SCRIPT_FILE_NAME" ] ; then
|
if ! [ -f "$SCRIPT_PATH/$SCRIPT_FILE_NAME" ] ; then
|
||||||
echo -e "\n ${YEL}$SCRIPT_FILE_NAME not found...${CRS}"
|
echo -e "\n ${YEL}$SCRIPT_FILE_NAME not found...${CRS}"
|
||||||
|
|
||||||
|
|
@ -331,28 +558,26 @@ update_script() {
|
||||||
read -p " Copy script to $SCRIPT_PATH? (Y/n) : " CONFIRM_SCRIPT_INSTALL
|
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 [[ "$CONFIRM_SCRIPT_INSTALL" == "" || "$CONFIRM_SCRIPT_INSTALL" == "y" || "$CONFIRM_SCRIPT_INSTALL" == "Y" ]] ; then
|
||||||
if ! [ -d "$SCRIPT_PATH" ] ; then
|
|
||||||
mkdir -p $SCRIPT_PATH
|
mkdir -p $SCRIPT_PATH
|
||||||
fi
|
mkdir -p $TMP
|
||||||
|
wget -P $TMP $REMOTE_SCRIPT_URL -q
|
||||||
mv $TMP/$SCRIPT_FILE_NAME $SCRIPT_PATH
|
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}"
|
||||||
exit_clean
|
break
|
||||||
|
|
||||||
elif [[ "$CONFIRM_SCRIPT_INSTALL" == "n" || "$CONFIRM_SCRIPT_INSTALL" == "N" ]] ; then
|
elif [[ "$CONFIRM_SCRIPT_INSTALL" == "n" || "$CONFIRM_SCRIPT_INSTALL" == "N" ]] ; then
|
||||||
echo -e " ${RED}Cancelled!${CRS}"
|
echo -e " ${RED}Cancelled!${CRS}\n"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e " ${YEL}Invalid response!${CRS}\n"
|
echo -e " ${YEL}Invalid response!${CRS}\n"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
REMOTE_SCRIPT_VERSION=$($TMP/$SCRIPT_FILE_NAME -s | awk '{print $8}' | tr -d '\n' )
|
REMOTE_SCRIPT_VERSION=$(curl -s $REMOTE_SCRIPT_URL | grep -m 1 "SCRIPT_VERSION" | tr -d 'SCRIPT_VERSION="')
|
||||||
|
|
||||||
### CHECK FOR EMPTY VERSION TAGS
|
### CHECK FOR EMPTY VERSION TAGS
|
||||||
if [ -z "$SCRIPT_VERSION" ] ; then
|
if [ -z "$SCRIPT_VERSION" ] ; then
|
||||||
|
|
@ -362,7 +587,6 @@ update_script() {
|
||||||
elif [ -z "$REMOTE_SCRIPT_VERSION" ] ; then
|
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}"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
### COMPARE LOCAL & REMOTE VERSION
|
### COMPARE LOCAL & REMOTE VERSION
|
||||||
|
|
@ -373,9 +597,8 @@ update_script() {
|
||||||
echo -e "\n ${GRN}$SCRIPT_FILE_NAME is already up-to-date!${CRS}\n"
|
echo -e "\n ${GRN}$SCRIPT_FILE_NAME is already up-to-date!${CRS}\n"
|
||||||
|
|
||||||
elif [ "$REMOTE_SCRIPT_VERSION_NUM" -gt "$SCRIPT_VERSION_NUM" ] ; then
|
elif [ "$REMOTE_SCRIPT_VERSION_NUM" -gt "$SCRIPT_VERSION_NUM" ] ; then
|
||||||
echo -e "\n ${YEL}$SCRIPT_FILE_NAME is updatable!${CRS}\n"
|
echo -e "\n ${LCY}$SCRIPT_FILE_NAME is updatable!${CRS}\n"
|
||||||
echo -e " ${CYN}Local Version :\t${CRS}${SCRIPT_VERSION}"
|
scrip_version_info
|
||||||
echo -e " ${CYN}Remote Version :\t${CRS}${REMOTE_SCRIPT_VERSION}\n"
|
|
||||||
|
|
||||||
while true ; do
|
while true ; do
|
||||||
read -p " Update $SCRIPT_FILE_NAME? (Y/n) : " CONFIRM_SCRIPT_UPDATE
|
read -p " Update $SCRIPT_FILE_NAME? (Y/n) : " CONFIRM_SCRIPT_UPDATE
|
||||||
|
|
@ -386,69 +609,63 @@ update_script() {
|
||||||
mkdir -p $BACKUP_PATH
|
mkdir -p $BACKUP_PATH
|
||||||
fi
|
fi
|
||||||
mv $SCRIPT_PATH/$SCRIPT_FILE_NAME $BACKUP_PATH/$SCRIPT_FILE_NAME.old
|
mv $SCRIPT_PATH/$SCRIPT_FILE_NAME $BACKUP_PATH/$SCRIPT_FILE_NAME.old
|
||||||
mv $TMP/$SCRIPT_FILE_NAME $SCRIPT_PATH
|
mv $SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME $BACKUP_PATH/$AUTO_SCRIPT_FILE_NAME.old
|
||||||
|
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
|
||||||
|
mv $TMP/$SCRIPT_FILE_NAME $TMP/$AUTO_SCRIPT_FILE_NAME $SCRIPT_PATH
|
||||||
echo -e " ${GRN}$SCRIPT_FILE_NAME is up-to-date!${CRS}"
|
echo -e " ${GRN}$SCRIPT_FILE_NAME is up-to-date!${CRS}"
|
||||||
break
|
break
|
||||||
|
|
||||||
elif [[ "$CONFIRM_SCRIPT_UPDATE" == "n" || "$CONFIRM_SCRIPT_UPDATE" == "N" ]] ; then
|
elif [[ "$CONFIRM_SCRIPT_UPDATE" == "n" || "$CONFIRM_SCRIPT_UPDATE" == "N" ]] ; then
|
||||||
echo -e " ${RED}Cancelled!${CRS}"
|
echo -e " ${RED}Cancelled!${CRS}\n"
|
||||||
break
|
break
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e " ${YEL}Invalid response!${CRS}\n"
|
echo -e " ${YEL}Invalid response!${CRS}\n"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
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}${SCRIPT_VERSION}"
|
scrip_version_info
|
||||||
echo -e " ${CYN}Remote Version :\t${CRS}${REMOTE_SCRIPT_VERSION}\n"
|
|
||||||
echo -e " ${RED}Updating script failed...${CRS}\n"
|
echo -e " ${RED}Updating script failed...${CRS}\n"
|
||||||
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### COMPARE APPIMAGE VERSION
|
### COMPARE APP VERSION
|
||||||
compare_version() {
|
app_version_info() {
|
||||||
LOCAL_VERSION=$($INSTALL_PATH/$APP_NAME.AppImage --version | awk '{print $2}')
|
echo -e " - ${CYN}Local Version :\t${CRS}$LOCAL_VERSION"
|
||||||
GIT_VERSION=$(curl -s https://api.github.com/repos/imputnet/helium-linux/releases/latest | grep "tag_name" | tr -d \", | awk '{print $2}')
|
echo -e " - ${CYN}$APP_SOURCE Version :\t${CRS}$APP_SOURCE_VERSION\n"
|
||||||
|
}
|
||||||
|
|
||||||
### CHECK FOR EMPTY VERSION TAGS
|
compare_version() {
|
||||||
if [ -z "$GIT_VERSION" ] ; then
|
LOCAL_VERSION=$($INSTALL_PATH/$APP_NAME.$FILE_EXTENSION --version | awk '{print $2}')
|
||||||
echo -e "\n ${RED}Empty version tag from ${CYN}$SOURCE${RED}! Can't compare, exiting...${CRS}"
|
APP_SOURCE_VERSION=$(curl -s $APP_SOURCE_URL | grep "tag_name" | tr -d \", | awk '{print $2}')
|
||||||
|
|
||||||
|
if [ -z "$APP_SOURCE_VERSION" ] ; then
|
||||||
|
echo -e "\n ${RED}Empty version tag from ${CYN}$APP_SOURCE${RED}! Can't compare, exiting...${CRS}\n"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
elif [ -z "$LOCAL_VERSION" ] ; then
|
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
|
exit
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
### COMPARE LOCAL & REMOTE VERSION
|
|
||||||
LOCAL_VERSION_NUM=$(echo $LOCAL_VERSION | tr -d .)
|
LOCAL_VERSION_NUM=$(echo $LOCAL_VERSION | tr -d .)
|
||||||
GIT_VERSION_NUM=$(echo $GIT_VERSION | tr -d .)
|
APP_SOURCE_VERSION_NUM=$(echo $APP_SOURCE_VERSION | tr -d .)
|
||||||
|
|
||||||
if [ "$GIT_VERSION" == "$LOCAL_VERSION" ] ; then
|
if [ "$APP_SOURCE_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}"
|
app_version_info
|
||||||
echo -e " ${CYN}$SOURCE Version :\t${CRS}${GIT_VERSION}\n"
|
|
||||||
exit
|
|
||||||
|
|
||||||
elif [ "$GIT_VERSION_NUM" -gt "$LOCAL_VERSION_NUM" ] ; then
|
elif [ "$APP_SOURCE_VERSION_NUM" -gt "$LOCAL_VERSION_NUM" ] ; then
|
||||||
echo -e "\n ${YEL}$APP_NAME_LONG is updatable!${CRS}\n"
|
echo -e "\n ${LCY}$APP_NAME_LONG is updatable!${CRS}\n"
|
||||||
echo -e " ${CYN}Local Version :\t${CRS}${LOCAL_VERSION}"
|
app_version_info
|
||||||
echo -e " ${CYN}$SOURCE Version :\t${CRS}${GIT_VERSION}\n"
|
|
||||||
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}"
|
app_version_info
|
||||||
echo -e " ${CYN}$SOURCE Version :\t${CRS}${GIT_VERSION}\n"
|
|
||||||
echo -e " ${RED}Update failed ... Exiting ...${CRS}\n"
|
|
||||||
exit
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -456,19 +673,19 @@ 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 | -a | -u | -b | -r | -c | -s | -S | -h ]\n"
|
||||||
echo -e "Options:\n"
|
echo -e "Options:\n"
|
||||||
echo -e "\t-i\tDownload & install $APP_NAME_LONG from $SOURCE"
|
echo -e "\t-i\tInstall $APP_NAME_LONG from $APP_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}--> Partially working with zsh & bash${CRS}"
|
echo -e "\t-a\tCreate alias for $SCRIPT_FILE_NAME"
|
||||||
echo -e "\t-u\tDownload & update $APP_NAME_LONG from $SOURCE"
|
echo -e "\t-u\tUpdate $APP_NAME_LONG from $APP_SOURCE"
|
||||||
echo -e "\t-U\tEnable automatic updates on login ${RED}--> Not yet working${CRS}"
|
echo -e "\t-b\tBackup $APP_NAME_LONG & configuration"
|
||||||
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_FILE_NAME"
|
||||||
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 directories:\n"
|
||||||
echo -e "\t${CYN}${INSTALL_PATH}${CRS}\t\tInstall location"
|
echo -e "\t${CYN}${INSTALL_PATH}${CRS}\t\tInstall location"
|
||||||
echo -e "\t${CYN}${LAUNCHER_PATH}${CRS}\tLauncher location"
|
echo -e "\t${CYN}${LAUNCHER_PATH}${CRS}\tLauncher location"
|
||||||
echo -e "\t${CYN}${SCRIPT_PATH}${CRS}\t\t\tScript location\n"
|
echo -e "\t${CYN}${SCRIPT_PATH}${CRS}\t\t\tScript location\n"
|
||||||
|
|
@ -478,7 +695,6 @@ help() {
|
||||||
exit_clean() {
|
exit_clean() {
|
||||||
if [ -d "$TMP" ] ; then
|
if [ -d "$TMP" ] ; then
|
||||||
rm -rf $TMP
|
rm -rf $TMP
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit
|
exit
|
||||||
|
|
@ -487,47 +703,88 @@ 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,:a,:u,: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}"
|
||||||
|
help
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
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}\n"
|
||||||
|
if [ "$#" -gt "1" ] ; then
|
||||||
|
ALL_PARAMETER=$@
|
||||||
|
|
||||||
|
for PARAMETER in ${ALL_PARAMETER[@]} ; do
|
||||||
|
if [ -d "$PARAMETER" ] ; then
|
||||||
|
INSTALL_PATH=$PARAMETER
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
dependency_check
|
dependency_check
|
||||||
install_helium
|
arch_check
|
||||||
|
install_application
|
||||||
exit_clean ;;
|
exit_clean ;;
|
||||||
|
|
||||||
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)
|
a)
|
||||||
echo -e "\n ${CYN}Adding alias...${CRS}"
|
echo -e "\n ${YEL}Adding alias...${CRS}"
|
||||||
|
if [ "$#" -gt "1" ] ; then
|
||||||
|
ALL_PARAMETER=$@
|
||||||
|
|
||||||
|
for PARAMETER in ${ALL_PARAMETER[@]} ; do
|
||||||
|
if [ "$PARAMETER" ] ; then
|
||||||
|
ALIAS=$PARAMETER
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
shell_check
|
||||||
add_alias
|
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
|
||||||
|
arch_check
|
||||||
local_check
|
local_check
|
||||||
update_helium
|
update_application
|
||||||
exit_clean ;;
|
exit_clean ;;
|
||||||
|
|
||||||
U)
|
b)
|
||||||
echo -e "\n ${CYN}Enabling automatic updates...${CRS}"
|
echo -e "\n ${YEL}Backing up $APP_NAME_LONG...${CRS}"
|
||||||
dependency_check
|
if [ "$#" -gt "1" ] ; then
|
||||||
local_check
|
ALL_PARAMETER=$@
|
||||||
auto_update
|
|
||||||
exit_clean ;;
|
for PARAMETER in ${ALL_PARAMETER[@]} ; do
|
||||||
|
if [[ "$PARAMETER" == "script" || "$PARAMETER" == "config" || "$PARAMETER" == "app" || "$PARAMETER" == "full" ]] ; then
|
||||||
|
BACKUP_METHOD=$PARAMETER
|
||||||
|
|
||||||
|
elif [[ "$PARAMETER" == "pbzip2" || "$PARAMETER" == "gzip" || "$PARAMETER" == "bzip2" || "$PARAMETER" == "zip" ]] ; then
|
||||||
|
BACKUP_COMPRESSION_OVERRIDE=$PARAMETER
|
||||||
|
|
||||||
|
elif [ -d "$PARAMETER" ] ; then
|
||||||
|
BACKUP_PATH=$PARAMETER
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
call_backup
|
||||||
|
exit ;;
|
||||||
|
|
||||||
r)
|
r)
|
||||||
echo -e "\n ${CYN}Removing $APP_NAME_LONG...${CRS}"
|
echo -e "\n ${YEL}Removing $APP_NAME_LONG...${CRS}\n"
|
||||||
remove_helium
|
remove_application
|
||||||
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
|
||||||
|
|
@ -538,7 +795,7 @@ while getopts ":i,:l,:a,:u,:U,:r,:c,:s,:S,:h" OPTION ; do
|
||||||
exit ;;
|
exit ;;
|
||||||
|
|
||||||
S)
|
S)
|
||||||
echo -e "\n ${CYN}Updating script...${CRS}"
|
echo -e "\n ${YEL}Updating script...${CRS}"
|
||||||
dependency_check
|
dependency_check
|
||||||
update_script
|
update_script
|
||||||
exit_clean ;;
|
exit_clean ;;
|
||||||
|
|
@ -551,19 +808,18 @@ 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}"
|
echo -e "\n${YEL}Option ${RED}$1${YEL} not recognized... Refer to help below!${CRS}"
|
||||||
help
|
help
|
||||||
exit ;;
|
exit ;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
## DEPENDENCY CHECK
|
## ENVIRONMENT CHECK
|
||||||
dependency_check
|
dependency_check
|
||||||
|
arch_check
|
||||||
|
|
||||||
## CHECK FOR LOCAL INSTALL
|
## CHECK LOCAL INSTALL
|
||||||
local_check
|
local_check
|
||||||
|
|
||||||
## UPDATE
|
## UPDATE
|
||||||
update_helium
|
update_application
|
||||||
|
|
||||||
## CLEAN
|
## CLEAN
|
||||||
exit_clean
|
exit_clean
|
||||||
|
|
|
||||||
360
helium_launcher_update.sh
Executable file
360
helium_launcher_update.sh
Executable file
|
|
@ -0,0 +1,360 @@
|
||||||
|
#!/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"
|
||||||
|
NOTIFY_NAME="Helium Helper"
|
||||||
|
SCRIPT_NAME="$APP_NAME Launcher Updater"
|
||||||
|
PARENT_SCRIPT_FILE_NAME="helium_helper.sh"
|
||||||
|
SCRIPT_FILE_NAME="helium_launcher_update.sh"
|
||||||
|
SCRIPT_VERSION="0.5.9.1"
|
||||||
|
LOG_DATE=$(date)
|
||||||
|
DATE=$(date +"%d%m%y")
|
||||||
|
|
||||||
|
## 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
|
||||||
|
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="stable"
|
||||||
|
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 "$LOG_DATE | Log created" >> $LOG
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "$TMP/missingDeps" ] ; then
|
||||||
|
MISSING=$(cat $TMP/missingDeps)
|
||||||
|
echo "$LOG_DATE | Failed to update - missing dependencies : $MISSING" >> $LOG
|
||||||
|
notify-send --icon="$ICON" "$NOTIFY_NAME" "Update failed! See log for details"
|
||||||
|
exit_clean
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [ -d "$INSTALL_PATH" ] ; then
|
||||||
|
mkdir -p $INSTALL_PATH
|
||||||
|
echo "$LOG_DATE | Failed to update - $APP_NAME installation path not present - But created for logging" >> $LOG
|
||||||
|
notify-send --icon="$ICON" "$NOTIFY_NAME" "Update failed! See log for details"
|
||||||
|
exit
|
||||||
|
|
||||||
|
elif ! [ -f "$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION" ] ; then
|
||||||
|
echo "$LOG_DATE | Failed to update - Local $APP_NAME AppImage not found" >> $LOG
|
||||||
|
notify-send --icon="$ICON" "$NOTIFY_NAME" "Update failed! See log for details"
|
||||||
|
exit
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
### BACKUP
|
||||||
|
backup_helium() {
|
||||||
|
if [[ -d "$INSTALL_PATH" || -d "$SCRIPT_PATH" || -d $APP_CONFIG_PATH ]] ; then
|
||||||
|
BACKUPABLE=("$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 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
|
||||||
|
|
||||||
|
if [ -d "$TMP/backup" ] ; then
|
||||||
|
CWD=$(pwd)
|
||||||
|
cd $TMP/backup
|
||||||
|
chmod -x *.sh *.$FILE_EXTENSION > /dev/null 2>&1
|
||||||
|
|
||||||
|
if [ "$BACKUP_COMPRESSION_OVERRIDE" ] ; then
|
||||||
|
BACKUP_COMPRESSION=$BACKUP_COMPRESSION_OVERRIDE
|
||||||
|
|
||||||
|
elif ! [ "$BACKUP_COMPRESSION_OVERRIDE" ] ; then
|
||||||
|
COMPRESSION_METHOD=("pbzip2" "gzip" "bzip2" "zip")
|
||||||
|
|
||||||
|
until [ "$BACKUP_COMPRESSION" ] ; do
|
||||||
|
for COMPRESSION_TYPE in ${COMPRESSION_METHOD[@]} ; do
|
||||||
|
|
||||||
|
if [ "$(command -v $COMPRESSION_TYPE) > /dev/null 2>&1" ] ; then
|
||||||
|
BACKUP_COMPRESSION=$COMPRESSION_TYPE
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$BACKUP_COMPRESSION" == "pbzip2" ] ; then
|
||||||
|
tar -cf $APP_NAME.auto_backup_$DATE.tar * > /dev/null 2>&1
|
||||||
|
pbzip2 $APP_NAME.auto_backup_$DATE.tar
|
||||||
|
mkdir -p $BACKUP_PATH
|
||||||
|
mv $APP_NAME.auto_backup_$DATE.tar.bz2 $BACKUP_PATH
|
||||||
|
cd $TMP && rm -rf backup
|
||||||
|
|
||||||
|
elif [ "$BACKUP_COMPRESSION" == "gzip" ] ; then
|
||||||
|
tar -cf $APP_NAME.auto_backup_$DATE.tar * > /dev/null 2>&1
|
||||||
|
gzip $APP_NAME.auto_backup_$DATE.tar
|
||||||
|
mkdir -p $BACKUP_PATH
|
||||||
|
mv $APP_NAME.auto_backup_$DATE.tar.gz $BACKUP_PATH
|
||||||
|
cd $TMP && rm -rf backup
|
||||||
|
|
||||||
|
elif [ "$BACKUP_COMPRESSION" == "bzip2" ] ; then
|
||||||
|
tar -cf $APP_NAME.auto_backup_$DATE.tar * > /dev/null 2>&1
|
||||||
|
bzip2 $APP_NAME.auto_backup_$DATE.tar
|
||||||
|
mkdir -p $BACKUP_PATH
|
||||||
|
mv $APP_NAME.auto_backup_$DATE.tar.bz2 $BACKUP_PATH
|
||||||
|
cd $TMP && rm -rf backup
|
||||||
|
|
||||||
|
elif [ "$BACKUP_COMPRESSION" == "zip" ] ; then
|
||||||
|
tar -cf $APP_NAME.auto_backup_$DATE.tar * > /dev/null 2>&1
|
||||||
|
zip -r $APP_NAME.auto_backup_$DATE.tar.zip $APP_NAME.auto_backup_$DATE.tar > /dev/null 2>&1
|
||||||
|
mkdir -p $BACKUP_PATH
|
||||||
|
mv $APP_NAME.auto_backup_$DATE.tar.zip $BACKUP_PATH
|
||||||
|
cd $TMP && rm -rf backup
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "$LOG_DATE | Backup - 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
|
||||||
|
notify-send --icon="$ICON" "$NOTIFY_NAME" "Backup created"
|
||||||
|
cd $CWD
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "$LOG_DATE | Failed to backup - Nothing worth backing up found" >> $LOG
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
### UPDATE SCRIPT
|
||||||
|
update_script() {
|
||||||
|
### CHECK FOR LOCAL SCRIPT
|
||||||
|
if ! [ -f "$SCRIPT_PATH/$SCRIPT_FILE_NAME" ] ; then
|
||||||
|
echo "$LOG_DATE | Failed to update script - local file not found" >> $LOG
|
||||||
|
notify-send --icon="$ICON" "$NOTIFY_NAME" "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 "$LOG_DATE | Failed to update script - Empty version tag --> local" >> $LOG
|
||||||
|
notify-send --icon="$ICON" "$NOTIFY_NAME" "Script update failed! See log for details"
|
||||||
|
exit
|
||||||
|
|
||||||
|
elif [ -z "$REMOTE_SCRIPT_VERSION" ] ; then
|
||||||
|
echo "$LOG_DATE | Failed to update script - Empty version tag --> $APP_SOURCE" >> $LOG
|
||||||
|
notify-send --icon="$ICON" "$NOTIFY_NAME" "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 --icon="$ICON" "$NOTIFY_NAME" "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
|
||||||
|
wget -P $TMP $REMOTE_REPO_URL/$PARENT_SCRIPT_FILE_NAME -q
|
||||||
|
chmod +x $TMP/$SCRIPT_FILE_NAME $TMP/$PARENT_SCRIPT_FILE_NAME
|
||||||
|
mv $TMP/$SCRIPT_FILE_NAME $TMP/$PARENT_SCRIPT_FILE_NAME $SCRIPT_PATH
|
||||||
|
echo "$LOG_DATE | Script updated to version $REMOTE_SCRIPT_VERSION" >> $LOG
|
||||||
|
notify-send --icon="$ICON" "$NOTIFY_NAME" "Script updated to version $REMOTE_SCRIPT_VERSION"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "$LOG_DATE | Failed to update - Malformed version tags" >> $LOG
|
||||||
|
echo "$LOG_DATE | Remote Version: $REMOTE_SCRIPT_VERSION" >> $LOG
|
||||||
|
echo "$LOG_DATE | Local Version: $SCRIPT_VERSION" >> $LOG
|
||||||
|
notify-send --icon="$ICON" "$NOTIFY_NAME" "Script update failed! See log for details"
|
||||||
|
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 "$LOG_DATE | Failed to update - Empty version tag --> $APP_SOURCE" >> $LOG
|
||||||
|
notify-send --icon="$ICON" "$NOTIFY_NAME" "Browser update failed! See log for details"
|
||||||
|
exit
|
||||||
|
|
||||||
|
elif [[ -z "$LOCAL_VERSION" ]] ; then
|
||||||
|
echo "$LOG_DATE | Failed to update - Empty version tag --> LOCAL" >> $LOG
|
||||||
|
notify-send --icon="$ICON" "$NOTIFY_NAME" "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 --icon="$ICON" "$NOTIFY_NAME" "Browser is up-to-date"
|
||||||
|
|
||||||
|
elif [ "$APP_SOURCE_VERSION_NUM" -gt "$LOCAL_VERSION_NUM" ] ; then
|
||||||
|
mkdir -p $TMP
|
||||||
|
wget -P $TMP $DOWNLOAD_URL -q
|
||||||
|
chmod +x $TMP/$APP_SOURCE_FILENAME
|
||||||
|
backup_helium
|
||||||
|
mv $TMP/$APP_SOURCE_FILENAME $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION
|
||||||
|
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 "$LOG_DATE | $APP_NAME updated to version ${APP_SOURCE_VERSION}" >> $LOG
|
||||||
|
notify-send --icon="$ICON" "$NOTIFY_NAME" "Browser updated to version $APP_SOURCE_VERSION"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "$LOG_DATE | Failed to update - Version tags malformed" >> $LOG
|
||||||
|
notify-send --icon="$ICON" "$NOTIFY_NAME" "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 --icon="$ICON" "$NOTIFY_NAME" "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
|
||||||
|
|
||||||
|
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}"
|
||||||
|
help
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
64
todo.md
64
todo.md
|
|
@ -1,64 +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
|
|
||||||
|
|
||||||
## Add
|
|
||||||
- Internet connectivity check in [Auto Update Script](https://lab.c95.org/fr4nz/helium-helper/src/branch/main/helium_auto_update.sh)
|
|
||||||
- Auto update setup
|
|
||||||
- shell recognition
|
|
||||||
- Architecture detection
|
|
||||||
- Set alias --> Partially
|
|
||||||
- Roll back from backup
|
|
||||||
- Config check
|
|
||||||
- Desktop notifications in [Auto Update Script](https://lab.c95.org/fr4nz/helium-helper/src/branch/main/helium_auto_update.sh)
|
|
||||||
- Log viewer & config editor
|
|
||||||
|
|
||||||
## 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
|
|
||||||
```
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue