Compare commits
19 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3cbc1c2ad6 | |||
| 7f1042927c | |||
| 4932d84c67 | |||
| 6c601ad66b | |||
| 519e36de43 | |||
| 60136a75fe | |||
| 53307fa77a | |||
| 96d4f1421d | |||
| 4aa3755b19 | |||
| b0ce07b9e1 | |||
| 0807f98eea | |||
| 1f1573f58c | |||
| e7580571ce | |||
| 8bace469da | |||
| ae18eac9b9 | |||
| f9a6599993 | |||
| 489fb720c2 | |||
| 42689a9605 | |||
| 3620277b98 |
8 changed files with 502 additions and 69 deletions
0
.gitignore
vendored
Normal file → Executable file
0
.gitignore
vendored
Normal file → Executable file
6
README.md
Normal file → Executable file
6
README.md
Normal file → Executable file
|
|
@ -1,4 +1,4 @@
|
||||||
# Helium Bowser installer & updater
|
# Helium Browser installer & updater
|
||||||
## Purpose
|
## 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.
|
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.
|
||||||
|
|
||||||
|
|
@ -10,7 +10,7 @@ With "little" tinkering it should be possible to apply this script to install, u
|
||||||
```
|
```
|
||||||
---
|
---
|
||||||
### First Install
|
### First Install
|
||||||
To initally install Helium browser via this script, download helium_helper.sh and make it executable:
|
To initally install Helium browser via this script, download `helium_helper.sh` and make it executable:
|
||||||
```sh
|
```sh
|
||||||
wget https://lab.c95.org/fr4nz/helium-helper/raw/branch/main/helium_helper.sh && chmod +x helium_helper.sh
|
wget https://lab.c95.org/fr4nz/helium-helper/raw/branch/main/helium_helper.sh && chmod +x helium_helper.sh
|
||||||
```
|
```
|
||||||
|
|
@ -30,7 +30,7 @@ Run script with install parameter _-i_
|
||||||
### Updating
|
### Updating
|
||||||
**From launcher** (if added during install or by running `./helium_helper.sh -l`)
|
**From launcher** (if added during install or by running `./helium_helper.sh -l`)
|
||||||
|
|
||||||
Checking for the latest version and updating can simply be done for the browser as well as the script by right clicking the app icon and choosing either update option, which will be run by `helium_launcher_update.sh`. This will backup all files that are being updated and write a log.
|
Checking for the latest version and updating can simply be done for the browser as well as the script by right clicking the app icon and choosing either update option, which will be run by `helium_launcher_update.sh`. This will backup all files and configuration and write a log.
|
||||||
|
|
||||||
**Terminal**
|
**Terminal**
|
||||||
|
|
||||||
|
|
|
||||||
0
assets/icon/helium.png
Normal file → Executable file
0
assets/icon/helium.png
Normal file → Executable file
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
0
assets/launcher/helium.desktop.template
Normal file → Executable file
0
assets/launcher/helium.desktop.template
Normal file → Executable file
0
assets/workflow/merge.yml
Normal file → Executable file
0
assets/workflow/merge.yml
Normal file → Executable file
11
devdoc.md
Normal file → Executable file
11
devdoc.md
Normal file → Executable file
|
|
@ -43,12 +43,21 @@
|
||||||
- Removal process adjusted
|
- Removal process adjusted
|
||||||
- $1 verifier added
|
- $1 verifier added
|
||||||
- Readme updated
|
- Readme updated
|
||||||
|
---
|
||||||
|
- Notification adjusted for KDE & GNOME
|
||||||
|
- Backup compression to pass as argument
|
||||||
|
- Restoration process added --> partially
|
||||||
|
- Backup selector works
|
||||||
|
- Backup decompression works
|
||||||
|
- Restoration config generator --> incomplete
|
||||||
|
- Restoration function --> incomlete
|
||||||
|
- Alias changed to "helium-helper"
|
||||||
|
|
||||||
## Add/To Do
|
## Add/To Do
|
||||||
- Roll back from backup
|
- Roll back from backup
|
||||||
- Update Readme
|
- Update Readme
|
||||||
- Make functional launcher optional
|
- Make functional launcher optional
|
||||||
|
- Variable transfer script
|
||||||
|
|
||||||
## Repo
|
## Repo
|
||||||
- Merge workflow
|
- Merge workflow
|
||||||
|
|
|
||||||
524
helium_helper.sh
524
helium_helper.sh
|
|
@ -5,6 +5,7 @@ set -e
|
||||||
|
|
||||||
## SOME COLOR
|
## SOME COLOR
|
||||||
CYN="\e[0;36m"
|
CYN="\e[0;36m"
|
||||||
|
MGT="\e[0;35m"
|
||||||
YEL="\e[0;33m"
|
YEL="\e[0;33m"
|
||||||
RED="\e[0;31m"
|
RED="\e[0;31m"
|
||||||
GRN="\e[0;32m"
|
GRN="\e[0;32m"
|
||||||
|
|
@ -24,19 +25,20 @@ 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"
|
AUTO_SCRIPT_FILE_NAME="helium_launcher_update.sh"
|
||||||
SCRIPT_VERSION="0.5.9.1"
|
SCRIPT_VERSION="0.5.9.1"
|
||||||
ALIAS="update-helium"
|
ALIAS="helium-helper"
|
||||||
DATE=$(date +"%d%m%y")
|
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\1
|
||||||
APP_CONFIG_PATH=$HOME/.config/net.imput.helium
|
APP_CONFIG_FOLDER="net.imput.helium"
|
||||||
|
APP_CONFIG_PATH=$HOME/.config/$APP_CONFIG_FOLDER
|
||||||
ASSET_PATH=$INSTALL_PATH/assets
|
ASSET_PATH=$INSTALL_PATH/assets
|
||||||
BACKUP_PATH=$ASSET_PATH/backup
|
BACKUP_PATH=$ASSET_PATH/backup
|
||||||
LOG_PATH=$ASSET_PATH/logs
|
LOG_PATH=$ASSET_PATH/logs
|
||||||
LOG=$LOG_PATH/log
|
LOG=$LOG_PATH/log
|
||||||
LAUNCHER_PATH=$HOME/.local/share/applications
|
LAUNCHER_PATH=$HOME/.local/share/applications1
|
||||||
SCRIPT_PATH=$HOME/.local/bin
|
SCRIPT_PATH=$HOME/.local/bin1
|
||||||
|
|
||||||
## REMOTE LOCATIONS
|
## REMOTE LOCATIONS
|
||||||
REMOTE_REPO_BRANCH="main"
|
REMOTE_REPO_BRANCH="main"
|
||||||
|
|
@ -44,11 +46,11 @@ REMOTE_REPO_URL=https://lab.c95.org/fr4nz/helium-helper/raw/branch/$REMOTE_REPO_
|
||||||
REMOTE_SCRIPT_URL=$REMOTE_REPO_URL/$SCRIPT_FILE_NAME
|
REMOTE_SCRIPT_URL=$REMOTE_REPO_URL/$SCRIPT_FILE_NAME
|
||||||
APP_SOURCE_URL=https://api.github.com/repos/imputnet/helium-linux/releases/latest
|
APP_SOURCE_URL=https://api.github.com/repos/imputnet/helium-linux/releases/latest
|
||||||
|
|
||||||
########## FUNCTIONS ###########
|
########################### FUNCTIONS ############################
|
||||||
|
|
||||||
### DEPENDENCIES
|
#################### DEPENDENCY CHECK ####################
|
||||||
cmd_query() {
|
cmd_query() {
|
||||||
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
|
||||||
}
|
}
|
||||||
|
|
@ -63,29 +65,27 @@ dependency_check () {
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -f "$TMP/missingDeps" ] ; then
|
if [ -f "$TMP/missingDeps" ] ; then
|
||||||
MISSING=$(cat $TMP/missingDeps)
|
echo -e " ${RED}Following dependencies are missing :\n\n${CRS}$(cat $TMP/missingDeps)\n\n ${CYN}Please install and re-run script !${CRS}\n"
|
||||||
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
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### SHELL CHECK
|
#################### SHELL CHECK ####################
|
||||||
shell_query() {
|
shell_query() {
|
||||||
if [ "$(echo $SHELL | grep "$SHELL_OPTION")" ] ; then
|
if [ "$(echo $SHELL | grep "$SHELL_OPTION")" ] ; then
|
||||||
ACTIVE_SHELL=$SHELL_OPTION
|
ACTIVE_SHELL=$SHELL_OPTION
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
shell_check() {
|
shell_check() {
|
||||||
SHELLS=("bash" "fish" "zsh")
|
SHELLS=("bash" "fish" "zsh")
|
||||||
|
|
||||||
for SHELL_OPTION in "${SHELLS[@]}" ; do
|
for SHELL_OPTION in ${SHELLS[@]} ; do
|
||||||
shell_query "$SHELL_OPTION"
|
shell_query "$SHELL_OPTION"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
### ARCH CHECK
|
#################### ARCH CHECK ####################
|
||||||
arch_check() {
|
arch_check() {
|
||||||
if [ "$ARCH_OVERRIDE" ] ; then
|
if [ "$ARCH_OVERRIDE" ] ; then
|
||||||
ARCH=$ARCH_OVERRIDE
|
ARCH=$ARCH_OVERRIDE
|
||||||
|
|
@ -106,7 +106,7 @@ arch_check() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### CHECK LOCAL INSTALL
|
#################### LOCAL INSTALL CHECK ####################
|
||||||
local_check() {
|
local_check() {
|
||||||
if ! [ -d "$INSTALL_PATH" ] ; then
|
if ! [ -d "$INSTALL_PATH" ] ; then
|
||||||
echo -e "\n ${YEL}$APP_NAME_LONG directory not found!${CRS}\n"
|
echo -e "\n ${YEL}$APP_NAME_LONG directory not found!${CRS}\n"
|
||||||
|
|
@ -120,7 +120,33 @@ local_check() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### INSTALL
|
#################### VARIABLE CHECK ####################
|
||||||
|
path_correction() {
|
||||||
|
if [ "$TARGET" == "INSTALL" ] ; then
|
||||||
|
TARGET_PATH=$INSTALL_PATH
|
||||||
|
|
||||||
|
elif [ "$TARGET" == "BACKUP" ] ; then
|
||||||
|
TARGET_PATH=$BACKUP_PATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [ ${TARGET_PATH:0:1} == "/" ] ; then
|
||||||
|
TARGET_PATH=$(pwd)/$TARGET_PATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
REVERSE_PATH=$(echo $TARGET_PATH | rev)
|
||||||
|
if [ "${REVERSE_PATH:0:1}" == "/" ] ; then
|
||||||
|
TARGET_PATH=$(echo $TARGET_PATH | sed "s|.$||")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$TARGET" == "INSTALL" ] ; then
|
||||||
|
INSTALL_PATH=$TARGET_PATH
|
||||||
|
|
||||||
|
elif [ "$TARGET" == "BACKUP" ] ; then
|
||||||
|
BACKUP_PATH=$TARGET_PATH
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#################### INSTALL ####################
|
||||||
install_application() {
|
install_application() {
|
||||||
if [ -f "$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION" ] ; then
|
if [ -f "$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION" ] ; then
|
||||||
echo -e " ${YEL}$APP_NAME_LONG AppImage found! Trying to update...${CRS}"
|
echo -e " ${YEL}$APP_NAME_LONG AppImage found! Trying to update...${CRS}"
|
||||||
|
|
@ -153,7 +179,7 @@ install_application() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
### LAUNCHER
|
#################### LAUNCHER ####################
|
||||||
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 ${YEL}${APP_NAME}.desktop already exists!${CRS}"
|
||||||
|
|
@ -206,7 +232,7 @@ add_launcher() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### ALIAS
|
#################### ALIAS ####################
|
||||||
add_alias() {
|
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
|
||||||
|
|
@ -258,29 +284,31 @@ add_alias() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### UPDATE
|
#################### UPDATE ####################
|
||||||
update_application() {
|
update_application() {
|
||||||
LOCAL_VERSION=$($INSTALL_PATH/$APP_NAME.$FILE_EXTENSION --version | awk '{print $2}')
|
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}')
|
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 "$APP_SOURCE_VERSION" ] ; then
|
if [ -z "$APP_SOURCE_VERSION" ] ; then
|
||||||
echo -e "\n ${RED}Empty version tag from ${CYN}$APP_SOURCE${RED}! Can't compare, exiting...${CRS}"
|
echo -e "\n ${RED}Empty version tag from ${CYN}$APP_SOURCE${RED}! Can't compare, exiting...${CRS}\n"
|
||||||
exit
|
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 $FILE_EXTENSION${RED}! Can't compare, exiting...${CRS}\n"
|
||||||
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 .)
|
||||||
APP_SOURCE_VERSION_NUM=$(echo $APP_SOURCE_VERSION | tr -d .)
|
APP_SOURCE_VERSION_NUM=$(echo $APP_SOURCE_VERSION | tr -d .)
|
||||||
|
APP_SOURCE_VERSION_NUM=$(echo "1.$APP_SOURCE_VERSION_NUM")
|
||||||
|
LOCAL_VERSION_NUM=$(echo "1.$LOCAL_VERSION_NUM")
|
||||||
|
|
||||||
if [ "$APP_SOURCE_VERSION" == "$LOCAL_VERSION" ] ; then
|
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 [ "$APP_SOURCE_VERSION_NUM" -gt "$LOCAL_VERSION_NUM" ] ; then
|
elif [ $(echo "$APP_SOURCE_VERSION_NUM > $LOCAL_VERSION_NUM" | bc -l) -eq 1 ] ; then
|
||||||
echo -e "\n ${LCY}$APP_NAME_LONG is updatable!${CRS}\n"
|
echo -e "\n ${LCY}$APP_NAME_LONG is updatable!${CRS}\n"
|
||||||
app_version_info
|
app_version_info
|
||||||
|
|
||||||
|
|
@ -317,9 +345,10 @@ update_application() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### BACKUP
|
#################### BACKUP ####################
|
||||||
call_backup() {
|
call_backup() {
|
||||||
if [ -f $BACKUP_PATH\/$APP_NAME\.$BACKUP_METHOD\.backup_* ] ; then
|
BACKUP_COUNT=$(ls $BACKUP_PATH/$APP_NAME.$BACKUP_METHOD.backup_* 2> /dev/null | wc -l)
|
||||||
|
if [[ "$BACKUP_COUNT" -gt "0" ]] ; then
|
||||||
echo -e "\n ${CYN}A $BACKUP_METHOD backup already exists!${CRS}\n"
|
echo -e "\n ${CYN}A $BACKUP_METHOD backup already exists!${CRS}\n"
|
||||||
|
|
||||||
while true ; do
|
while true ; do
|
||||||
|
|
@ -327,22 +356,86 @@ call_backup() {
|
||||||
|
|
||||||
if [[ "$OVERWRITE_BACKUP" == "" || "$OVERWRITE_BACKUP" == "n" || "$OVERWRITE_BACKUP" == "N" ]] ; then
|
if [[ "$OVERWRITE_BACKUP" == "" || "$OVERWRITE_BACKUP" == "n" || "$OVERWRITE_BACKUP" == "N" ]] ; then
|
||||||
echo -e "\n ${YEL}Skipping backup process...${CRS}\n"
|
echo -e "\n ${YEL}Skipping backup process...${CRS}\n"
|
||||||
break
|
exit_clean
|
||||||
|
|
||||||
elif [[ "$OVERWRITE_BACKUP" == "y" || "$OVERWRITE_BACKUP" == "Y" ]] ; then
|
elif [[ "$OVERWRITE_BACKUP" == "y" || "$OVERWRITE_BACKUP" == "Y" ]] ; then
|
||||||
echo -e "\n ${YEL}Overwriting backup...${CRS}"
|
echo -e "\n ${YEL}Overwriting backup...${CRS}"
|
||||||
rm $BACKUP_PATH/$APP_NAME.$BACKUP_METHOD.backup_*
|
rm $BACKUP_PATH/$APP_NAME.$BACKUP_METHOD.backup_*
|
||||||
${BACKUP_METHOD}_backup
|
|
||||||
break
|
break
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e "\n ${YEL}Invalid response!${CRS}\n"
|
echo -e "\n ${YEL}Invalid response!${CRS}\n"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
${BACKUP_METHOD}_backup
|
||||||
|
}
|
||||||
|
|
||||||
|
backup_logger() {
|
||||||
|
echo "### $APP_NAME_LONG CONFIG SNAPSHOT $(date) ###" >> $TMP/backup/conf_log
|
||||||
|
echo >> $TMP/backup/conf_log
|
||||||
|
echo -e "\n - ${CRS}Creating ${CYN}config log${CRS}...${CRS}"
|
||||||
|
shell_check
|
||||||
|
|
||||||
|
if [ "$ACTIVE_SHELL" == "zsh" ] ; then
|
||||||
|
if [ "$(cat $HOME/.zshrc | grep "$ALIAS")" ] ; then
|
||||||
|
echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log
|
||||||
|
echo " # Alias : TRUE" >> $TMP/backup/conf_log
|
||||||
|
|
||||||
|
elif ! [ "$(cat $HOME/.zshrc | grep "$ALIAS")" ] ; then
|
||||||
|
echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log
|
||||||
|
echo " # Alias : FALSE" >> $TMP/backup/conf_log
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ "$ACTIVE_SHELL" == "bash" ] ; then
|
||||||
|
if [ "$(cat $HOME/.bashrc | grep "$ALIAS")" ] ; then
|
||||||
|
echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log
|
||||||
|
echo " # Alias : TRUE" >> $TMP/backup/conf_log
|
||||||
|
|
||||||
|
elif ! [ "$(cat $HOME/.bashrc | grep "$ALIAS")" ] ; then
|
||||||
|
echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log
|
||||||
|
echo " # Alias : FALSE" >> $TMP/backup/conf_log
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ "$ACTIVE_SHELL" == "fish" ] ; then
|
||||||
|
if [ "$(cat $HOME/.config/fish/config.fish | grep "source $HOME/.config/fish/$ALIAS.fish")" ] ; then
|
||||||
|
echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log
|
||||||
|
echo " # Alias : TRUE" >> $TMP/backup/conf_log
|
||||||
|
|
||||||
|
elif ! [ "$(cat $HOME/.config/fish/config.fish | grep "source $HOME/.config/fish/$ALIAS.fish")" ] ; then
|
||||||
|
echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log
|
||||||
|
echo " # Alias : FALSE" >> $TMP/backup/conf_log
|
||||||
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
${BACKUP_METHOD}_backup
|
echo " # Shell : $ACTIVE_SHELL" >> $TMP/backup/conf_log
|
||||||
|
echo " # Alias : FALSE" >> $TMP/backup/conf_log
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
LOGGABLE=("$INSTALL_PATH/$APP_NAME.$FILE_EXTENSION" "$SCRIPT_PATH/$SCRIPT_FILE_NAME" "$SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME" "$LAUNCHER_PATH/$APP_NAME.desktop" "$APP_CONFIG_PATH")
|
||||||
|
|
||||||
|
for LOG_ITEM in ${LOGGABLE[@]} ; do
|
||||||
|
if [ -d "$LOG_ITEM" ] ; then
|
||||||
|
echo " # Folder : $LOG_ITEM" >> $TMP/backup/conf_log
|
||||||
|
|
||||||
|
elif [ -f "$LOG_ITEM" ] ; then
|
||||||
|
echo " # File : $LOG_ITEM" >> $TMP/backup/conf_log
|
||||||
|
|
||||||
|
else
|
||||||
|
echo " # N/A : $LOG_ITEM" >> $TMP/backup/conf_log
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo >> $TMP/backup/conf_log
|
||||||
|
echo >> $TMP/backup/conf_log
|
||||||
|
echo "### $SCRIPT_FILE_NAME VARIABLES ###" >> $TMP/backup/conf_log
|
||||||
|
echo >> $TMP/backup/conf_log
|
||||||
|
echo "INSTALL_PATH = $INSTALL_PATH" >> $TMP/backup/conf_log
|
||||||
|
echo "SCRIPT_PATH = $SCRIPT_PATH" >> $TMP/backup/conf_log
|
||||||
|
echo "LAUNCHER_PATH = $LAUNCHER_PATH" >> $TMP/backup/conf_log
|
||||||
|
echo "APP_CONFIG_PATH = $APP_CONFIG_PATH" >> $TMP/backup/conf_log
|
||||||
|
echo >> $TMP/backup/conf_log
|
||||||
}
|
}
|
||||||
|
|
||||||
backup_file_collector() {
|
backup_file_collector() {
|
||||||
|
|
@ -357,6 +450,8 @@ backup_file_collector() {
|
||||||
cp $BACKUP_ITEM $TMP/backup
|
cp $BACKUP_ITEM $TMP/backup
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
backup_logger
|
||||||
}
|
}
|
||||||
|
|
||||||
script_backup() {
|
script_backup() {
|
||||||
|
|
@ -367,7 +462,7 @@ script_backup() {
|
||||||
pack_backup
|
pack_backup
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e " ${YEL}Nothing to back up...${CRS}"
|
echo -e "\n ${YEL}Nothing to back up...${CRS}\n"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -379,7 +474,7 @@ app_backup() {
|
||||||
pack_backup
|
pack_backup
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e " ${YEL}Nothing to back up...${CRS}"
|
echo -e "\n ${YEL}Nothing to back up...${CRS}\n"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -391,7 +486,7 @@ config_backup() {
|
||||||
pack_backup
|
pack_backup
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e " ${YEL}Nothing to back up...${CRS}"
|
echo -e "\n ${YEL}Nothing to back up...${CRS}\n"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -403,7 +498,7 @@ full_backup() {
|
||||||
pack_backup
|
pack_backup
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e " ${YEL}Nothing to back up...${CRS}"
|
echo -e "\n ${YEL}Nothing to back up...${CRS}\n"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -426,9 +521,9 @@ pack_backup() {
|
||||||
COMPRESSION_METHOD=("pbzip2" "gzip" "bzip2" "zip")
|
COMPRESSION_METHOD=("pbzip2" "gzip" "bzip2" "zip")
|
||||||
|
|
||||||
until [ "$BACKUP_COMPRESSION" ] ; do
|
until [ "$BACKUP_COMPRESSION" ] ; do
|
||||||
for COMPRESSION_TYPE in ${COMPRESSION_METHOD[@]} ; do
|
for COMPRESSION_TYPE in "${COMPRESSION_METHOD[@]}" ; do
|
||||||
|
|
||||||
if [ "$(command -v $COMPRESSION_TYPE) > /dev/null 2>&1" ] ; then
|
if command -v $COMPRESSION_TYPE > /dev/null 2>&1 ; then
|
||||||
BACKUP_COMPRESSION=$COMPRESSION_TYPE
|
BACKUP_COMPRESSION=$COMPRESSION_TYPE
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
|
@ -478,7 +573,295 @@ pack_backup() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### REMOVE
|
#################### RESTORE BACKUP ####################
|
||||||
|
select_backup() {
|
||||||
|
BACKUP_COUNT=$(ls $BACKUP_PATH/$APP_NAME.$BACKUP_TYPE.backup_* 2> /dev/null | wc -l)
|
||||||
|
if [ "$BACKUP_COUNT" -gt "1" ] ; then
|
||||||
|
i=1
|
||||||
|
mkdir -p $TMP/backup_restore
|
||||||
|
CWD=$(pwd)
|
||||||
|
cd $BACKUP_PATH
|
||||||
|
RESTORE_OPTIONS=$(ls -lt $APP_NAME\.$BACKUP_TYPE\.backup_* | awk '{print $9}')
|
||||||
|
|
||||||
|
for RESTORE_TARGET in ${RESTORE_OPTIONS[@]} ; do
|
||||||
|
echo " $i - $RESTORE_TARGET" >> $TMP/backup_restore/options
|
||||||
|
i=$(($i+1))
|
||||||
|
done
|
||||||
|
|
||||||
|
cd $CWD
|
||||||
|
echo -e "\n ${CYN}Choose one of the $BACKUP_COUNT options below${CRS}\n"
|
||||||
|
echo -e "$(cat $TMP/backup_restore/options)\n"
|
||||||
|
|
||||||
|
while true ; do
|
||||||
|
read -p " Enter backup ID (1-$BACKUP_COUNT) or exit : " RESTORE_SELECT
|
||||||
|
|
||||||
|
if [[ "$RESTORE_SELECT" -le "$BACKUP_COUNT" && "$RESTORE_SELECT" -gt "0" ]] ; then
|
||||||
|
RESTORE_FILE=$(sed -n $RESTORE_SELECT\p $TMP/backup_restore/options | awk '{print $3}')
|
||||||
|
BACKUP_TYPE=$(echo $RESTORE_FILE | awk -F'.' '{print $2}')
|
||||||
|
RESTORE_SOURCE=$BACKUP_PATH/$RESTORE_FILE
|
||||||
|
break
|
||||||
|
|
||||||
|
elif [[ "$RESTORE_SELECT" == "exit" || "$RESTORE_SELECT" == "EXIT" ]] ; then
|
||||||
|
echo
|
||||||
|
exit_clean
|
||||||
|
|
||||||
|
else
|
||||||
|
echo -e "\n ${YEL}Invalid response!${CRS}\n"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
elif [ "$BACKUP_COUNT" -lt "1" ] ; then
|
||||||
|
echo -e " ${RED}No backup archive found in ${CYN}$BACKUP_PATH${RED}!${CRS}\n"
|
||||||
|
exit_clean
|
||||||
|
|
||||||
|
else
|
||||||
|
RESTORE_SOURCE=$(ls $BACKUP_PATH/$APP_NAME.$BACKUP_TYPE.backup_*)
|
||||||
|
RESTORE_FILE=$(echo $RESTORE_SOURCE | rev | awk -F'/' '{print $1}' | rev)
|
||||||
|
|
||||||
|
if [ "$BACKUP_TYPE" == "*" ] ; then
|
||||||
|
BACKUP_TYPE=$(file $RESTORE_SOURCE | awk '{print $1}' | awk -F'.' '{print $2}')
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
BACKUP_COMPRESSION=$(file $RESTORE_SOURCE | awk '{print $2}')
|
||||||
|
decompress_backup
|
||||||
|
}
|
||||||
|
|
||||||
|
decompress_backup() {
|
||||||
|
CWD=$(pwd)
|
||||||
|
mkdir -p $TMP/backup_restore
|
||||||
|
cd $TMP/backup_restore
|
||||||
|
echo -e "\n - ${CRS}Decompressing backup archive ${CYN}$RESTORE_FILE${CRS}...${CRS}\n"
|
||||||
|
cp $RESTORE_SOURCE .
|
||||||
|
|
||||||
|
if [ "$BACKUP_COMPRESSION" == "bzip2" ] ; then
|
||||||
|
tar -xjf $APP_NAME.*.backup_*.tar.bz2
|
||||||
|
rm $APP_NAME.*.backup_*.tar.bz2
|
||||||
|
|
||||||
|
elif [ "$BACKUP_COMPRESSION" == "gzip" ] ; then
|
||||||
|
tar -xzf $APP_NAME.*.backup_*.tar.gz
|
||||||
|
rm $APP_NAME.*.backup_*.tar.gz
|
||||||
|
|
||||||
|
elif [ "$BACKUP_COMPRESSION" == "Zip" ] ; then
|
||||||
|
unzip $APP_NAME.*.backup_*.tar.zip > /dev/null 2>&1
|
||||||
|
tar -xf $APP_NAME.*.backup_*.tar
|
||||||
|
rm $APP_NAME.*.backup_*.tar.zip $APP_NAME.*.backup_*.tar
|
||||||
|
|
||||||
|
else
|
||||||
|
echo -e " ${YEL}TBA...${CRS}\n" #######################################################################
|
||||||
|
fi
|
||||||
|
|
||||||
|
configure_restore
|
||||||
|
}
|
||||||
|
|
||||||
|
configure_restore() {
|
||||||
|
echo -e " - ${CRS}Analysing ${CYN}$BACKUP_TYPE${CRS} backup content...${CRS}\n"
|
||||||
|
|
||||||
|
RESTORABLE=("$APP_NAME.$FILE_EXTENSION" "$SCRIPT_FILE_NAME" "$APP_NAME.desktop" "$APP_CONFIG_FOLDER")
|
||||||
|
|
||||||
|
for RESTORE_ITEM in ${RESTORABLE[@]} ; do
|
||||||
|
if [ -d "$RESTORE_ITEM" ] ; then
|
||||||
|
if [ -d "$APP_CONFIG_PATH" ] ; then
|
||||||
|
echo "APP_CONFIG_PATH=\"$APP_CONFIG_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "APP_CONFIG_PATH=\"$APP_CONFIG_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||||
|
echo "APP_CONFIG_PATH=\"$APP_CONFIG_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_diff
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ -f "$RESTORE_ITEM" ] ; then
|
||||||
|
if [[ -f "$INSTALL_PATH/$RESTORE_ITEM" || -f "$SCRIPT_PATH/$RESTORE_ITEM" || -f "$LAUNCHER_PATH/$RESTORE_ITEM" ]] ; then
|
||||||
|
if [ "$RESTORE_ITEM" == "$APP_NAME.$FILE_EXTENSION" ] ; then
|
||||||
|
echo "INSTALL_PATH=\"$INSTALL_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||||
|
|
||||||
|
elif [[ "$RESTORE_ITEM" == "$SCRIPT_FILE_NAME" || "$RESTORE_ITEM" == "$AUTO_SCRIPT_FILE_NAME" ]] ; then
|
||||||
|
echo "SCRIPT_PATH=\"$SCRIPT_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||||
|
|
||||||
|
elif [ "$RESTORE_ITEM" == "$APP_NAME.desktop" ] ; then
|
||||||
|
echo "LAUNCHER_PATH=\"$LAUNCHER_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
if [ "$RESTORE_ITEM" == "$APP_NAME.$FILE_EXTENSION" ] ; then
|
||||||
|
echo "INSTALL_PATH=\"$INSTALL_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||||
|
echo "INSTALL_PATH=\"$INSTALL_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_diff
|
||||||
|
|
||||||
|
elif [[ "$RESTORE_ITEM" == "$SCRIPT_FILE_NAME" || "$RESTORE_ITEM" == "$AUTO_SCRIPT_FILE_NAME" ]] ; then
|
||||||
|
echo "SCRIPT_PATH=\"$SCRIPT_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||||
|
echo "SCRIPT_PATH=\"$SCRIPT_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_diff
|
||||||
|
|
||||||
|
elif [ "$RESTORE_ITEM" == "$APP_NAME.desktop" ] ; then
|
||||||
|
echo "LAUNCHER_PATH=\"$LAUNCHER_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_check
|
||||||
|
echo "LAUNCHER_PATH=\"$LAUNCHER_PATH\" FILE_NAME=\"$RESTORE_ITEM\"" >> $TMP/restore_diff
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo -e " - ${CRS}Configuring ${CYN}$BACKUP_TYPE${CRS} restoration process...${CRS}\n"
|
||||||
|
i=1
|
||||||
|
RESTORE_PATH=$(cat $TMP/restore_check | awk -F'=' '{print $1}')
|
||||||
|
|
||||||
|
for PATH_VARIABLE in ${RESTORE_PATH[@]} ; do
|
||||||
|
PATH_CHECK=$(cat $TMP/restore_diff 2> /dev/null| grep "$PATH_VARIABLE" | awk '{print $1}' | awk -F'=' '{print $2}' | tr -d "\"")
|
||||||
|
|
||||||
|
if [[ "$PATH_CHECK" == "$INSTALL_PATH" || "$PATH_CHECK" == "$SCRIPT_PATH" || "$PATH_CHECK" == "$LAUNCHER_PATH" || "$PATH_CHECK" == "$APP_CONFIG_PATH" ]] ; then
|
||||||
|
echo " $i - DEFAULT_$PATH_VARIABLE = $PATH_CHECK" >> $TMP/restore_path_change
|
||||||
|
echo " BACKUP_$(cat conf_log | grep "$PATH_VARIABLE")" >> $TMP/restore_path_change
|
||||||
|
echo >> $TMP/restore_path_change
|
||||||
|
i=$(($i+1))
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -f "$TMP/restore_path_change" ] ; then
|
||||||
|
echo -e " ${YEL}Path change detected!\n${CRS}"
|
||||||
|
echo -e "$(cat $TMP/restore_path_change)\n"
|
||||||
|
|
||||||
|
while true ; do
|
||||||
|
read -p " Which path to use? (DEFAULT/backup) : " PATH_OVERWRITE
|
||||||
|
echo
|
||||||
|
|
||||||
|
if [[ "$PATH_OVERWRITE" == "" || "$PATH_OVERWRITE" == "default" || "$PATH_OVERWRITE" == "DEFAULT" ]] ; then
|
||||||
|
break
|
||||||
|
|
||||||
|
elif [[ "$PATH_OVERWRITE" == "backup" || "$PATH_OVERWRITE" == "BACKUP" ]] ; then
|
||||||
|
TARGET_TO_CHANGE=$(cat $TMP/restore_diff | awk '{print $1}' | awk -F'=' '{print $1}')
|
||||||
|
|
||||||
|
for TARGET_VARIABLE in ${TARGET_TO_CHANGE[@]} ; do
|
||||||
|
PATH_TO_CHANGE=$(cat conf_log | grep "$TARGET_VARIABLE" | awk -F'=' '{print $2}' | tr -d " ")
|
||||||
|
|
||||||
|
if [ "$TARGET_VARIABLE" == "INSTALL_PATH" ] ; then
|
||||||
|
INSTALL_PATH=$PATH_TO_CHANGE
|
||||||
|
|
||||||
|
elif [ "$TARGET_VARIABLE" == "SCRIPT_PATH" ] ; then
|
||||||
|
SCRIPT_PATH=$PATH_TO_CHANGE
|
||||||
|
|
||||||
|
elif [ "$TARGET_VARIABLE" == "LAUNCHER_PATH" ] ; then
|
||||||
|
LAUNCHER_PATH=$PATH_TO_CHANGE
|
||||||
|
|
||||||
|
elif [ "$TARGET_VARIABLE" == "APP_CONFIG_PATH" ] ; then
|
||||||
|
APP_CONFIG_PATH=$PATH_TO_CHANGE
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
break
|
||||||
|
|
||||||
|
else
|
||||||
|
echo -e " ${YEL}Invalid response!${CRS}\n"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
for RESTORE_ITEM in ${RESTORABLE[@]} ; do
|
||||||
|
if [ -d "$RESTORE_ITEM" ] ; then
|
||||||
|
if [ -d "$APP_CONFIG_PATH" ] ; then
|
||||||
|
echo -e " - Folder : $RESTORE_ITEM \t| ${RED}directory existing${CRS}" >> $TMP/restore_content
|
||||||
|
|
||||||
|
else
|
||||||
|
echo -e " - Folder : $RESTORE_ITEM \t| ${GRN}not present${CRS}" >> $TMP/restore_content
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ -f "$RESTORE_ITEM" ] ; then
|
||||||
|
if [[ -f "$INSTALL_PATH/$RESTORE_ITEM" || -f "$SCRIPT_PATH/$RESTORE_ITEM" || -f "$LAUNCHER_PATH/$RESTORE_ITEM" ]] ; then
|
||||||
|
echo -e " - File : $RESTORE_ITEM \t| ${RED}file existing${CRS}" >> $TMP/restore_content
|
||||||
|
|
||||||
|
else
|
||||||
|
echo -e " - File : $RESTORE_ITEM \t| ${GRN}not present${CRS}" >> $TMP/restore_content
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
restore_backup
|
||||||
|
}
|
||||||
|
|
||||||
|
restore_backup() { ###############################################
|
||||||
|
echo -e "\t${LCY}###### Restore Summary ######${CRS}\n"
|
||||||
|
echo -e " ${MGT}Destination${CRS}"
|
||||||
|
echo -e " - Install path \t: ${CYN}$INSTALL_PATH${CRS}"
|
||||||
|
echo -e " - Script path \t: ${CYN}$SCRIPT_PATH${CRS}"
|
||||||
|
echo -e " - Launcher path \t: ${CYN}$LAUNCHER_PATH${CRS}"
|
||||||
|
echo -e " - $APP_NAME config \t: ${CYN}$APP_CONFIG_PATH${CRS}\n"
|
||||||
|
echo -e " ${MGT}Backup content${CRS}"
|
||||||
|
echo -e "$(cat $TMP/restore_content)\n"
|
||||||
|
|
||||||
|
if [ -f "$TMP/restore_check" ] ; then
|
||||||
|
echo -e " ${RED}WARNING: Some items are existent on your system!${CRS}\n"
|
||||||
|
|
||||||
|
while true ; do
|
||||||
|
read -p " Overwrite existing? (y/N) : " RESTORE_OVERWRITE
|
||||||
|
|
||||||
|
if [[ "$RESTORE_OVERWRITE" == "" || "$RESTORE_OVERWRITE" == "n" || "$RESTORE_OVERWRITE" == "N" ]] ; then
|
||||||
|
echo -e "\n ${RED}Cancelled!${CRS}\n"
|
||||||
|
break
|
||||||
|
|
||||||
|
elif [[ "$RESTORE_OVERWRITE" == "y" || "$RESTORE_OVERWRITE" == "Y" ]] ; then
|
||||||
|
echo -e "\n - ${CRS}Restoring ${CYN}$BACKUP_TYPE${CRS} backup files...${CRS}\n"
|
||||||
|
EXISTING=$(cat $TMP/restore_check | awk -F'=' '{print $1}')
|
||||||
|
|
||||||
|
for REPLACE in ${EXISTING[@]} ; do
|
||||||
|
if [ "$REPLACE" == "INSTALL_PATH" ] ; then
|
||||||
|
rm -rf $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION
|
||||||
|
chmod +x $APP_NAME.$FILE_EXTENSION
|
||||||
|
mv $APP_NAME.$FILE_EXTENSION $INSTALL_PATH
|
||||||
|
|
||||||
|
elif [ "$REPLACE" == "SCRIPT_PATH" ] ; then
|
||||||
|
rm -rf $SCRIPT_PATH/$SCRIPT_FILE_NAME $SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME
|
||||||
|
chmod +x *.sh
|
||||||
|
mv *.sh $SCRIPT_PATH
|
||||||
|
|
||||||
|
elif [ "$REPLACE" == "LAUNCHER_PATH" ] ; then
|
||||||
|
rm -rf $LAUNCHER_PATH/$APP_NAME.desktop
|
||||||
|
mv $APP_NAME.desktop $LAUNCHER_PATH
|
||||||
|
|
||||||
|
elif [ "$REPLACE" == "APP_CONFIG_PATH" ] ; then
|
||||||
|
rm -rf $APP_CONFIG_PATH
|
||||||
|
mv $APP_CONFIG_FOLDER $HOME/.config
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
else
|
||||||
|
echo -e " ${CYN}The content above is about to be restored...${CRS}\n"
|
||||||
|
|
||||||
|
while true ; do
|
||||||
|
read -p " Proceed with changes? (Y/n) : " RESTORE_CONFIRM
|
||||||
|
|
||||||
|
if [[ "$RESTORE_CONFIRM" == "" || "$RESTORE_CONFIRM" == "y" || "$RESTORE_CONFIRM" == "Y" ]] ; then
|
||||||
|
echo -e " - ${CRS}Restoring ${CYN}$BACKUP_TYPE${CRS} backup files...${CRS}\n"
|
||||||
|
|
||||||
|
for REPLACE in ${EXISTING[@]} ; do
|
||||||
|
if [ "$REPLACE" == "INSTALL_PATH" ] ; then
|
||||||
|
rm -rf $INSTALL_PATH/$APP_NAME.$FILE_EXTENSION
|
||||||
|
chmod +x $APP_NAME.$FILE_EXTENSION
|
||||||
|
mv $APP_NAME.$FILE_EXTENSION $INSTALL_PATH
|
||||||
|
|
||||||
|
elif [ "$REPLACE" == "SCRIPT_PATH" ] ; then
|
||||||
|
rm -rf $SCRIPT_PATH/$SCRIPT_FILE_NAME $SCRIPT_PATH/$AUTO_SCRIPT_FILE_NAME
|
||||||
|
chmod +x *.sh
|
||||||
|
mv *.sh $SCRIPT_PATH
|
||||||
|
|
||||||
|
elif [ "$REPLACE" == "LAUNCHER_PATH" ] ; then
|
||||||
|
rm -rf $LAUNCHER_PATH/$APP_NAME.desktop
|
||||||
|
mv $APP_NAME.desktop $LAUNCHER_PATH
|
||||||
|
|
||||||
|
elif [ "$REPLACE" == "APP_CONFIG_PATH" ] ; then
|
||||||
|
rm -rf $APP_CONFIG_PATH
|
||||||
|
mv $APP_CONFIG_FOLDER $HOME/.config
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
elif [[ "$RESTORE_CONFIRM" == "n" || "$RESTORE_CONFIRM" == "N" ]] ; then
|
||||||
|
echo -e "\n ${RED}Cancelled!${CRS}\n"
|
||||||
|
break
|
||||||
|
|
||||||
|
else
|
||||||
|
echo -e "\n ${YEL}Invalid response!${CRS}\n"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#################### REMOVE ####################
|
||||||
remove_application() {
|
remove_application() {
|
||||||
if [ -d "$INSTALL_PATH" ] ; then
|
if [ -d "$INSTALL_PATH" ] ; then
|
||||||
|
|
||||||
|
|
@ -523,11 +906,11 @@ remove_application() {
|
||||||
break
|
break
|
||||||
|
|
||||||
elif [[ "$CONFIRM_REMOVE" == "n" || "$CONFIRM_REMOVE" == "N" ]] ; then
|
elif [[ "$CONFIRM_REMOVE" == "n" || "$CONFIRM_REMOVE" == "N" ]] ; then
|
||||||
echo -e " ${RED}Cancelled!${CRS}"
|
echo -e "\n ${RED}Cancelled!${CRS}"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e " ${YEL}Invalid response!${CRS}\n"
|
echo -e "\n ${YEL}Invalid response!${CRS}\n"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
@ -537,12 +920,12 @@ remove_application() {
|
||||||
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"
|
||||||
}
|
}
|
||||||
|
|
||||||
### UPDATE SCRIPT
|
#################### UPDATE SCRIPT ####################
|
||||||
scrip_version_info() {
|
scrip_version_info() {
|
||||||
echo -e " - ${CYN}Local Version :\t${CRS}$SCRIPT_VERSION"
|
echo -e " - ${CYN}Local Version :\t${CRS}$SCRIPT_VERSION"
|
||||||
echo -e " - ${CYN}Remote Version :\t${CRS}$REMOTE_SCRIPT_VERSION"
|
echo -e " - ${CYN}Remote Version :\t${CRS}$REMOTE_SCRIPT_VERSION"
|
||||||
|
|
@ -558,13 +941,12 @@ 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
|
||||||
mkdir -p $SCRIPT_PATH
|
mkdir -p $SCRIPT_PATH $TMP
|
||||||
mkdir -p $TMP
|
|
||||||
wget -P $TMP $REMOTE_SCRIPT_URL -q
|
wget -P $TMP $REMOTE_SCRIPT_URL -q
|
||||||
wget -P $TMP $REMOTE_REPO_URL/$AUTO_SCRIPT_FILE_NAME -q
|
wget -P $TMP $REMOTE_REPO_URL/$AUTO_SCRIPT_FILE_NAME -q
|
||||||
chmod +x $TMP/$SCRIPT_FILE_NAME $TMP/$AUTO_SCRIPT_FILE_NAME
|
chmod +x $TMP/$SCRIPT_FILE_NAME $TMP/$AUTO_SCRIPT_FILE_NAME
|
||||||
mv $TMP/$SCRIPT_FILE_NAME $TMP/$AUTO_SCRIPT_FILE_NAME $SCRIPT_PATH
|
mv $TMP/$SCRIPT_FILE_NAME $TMP/$AUTO_SCRIPT_FILE_NAME $SCRIPT_PATH
|
||||||
echo -e "\n ${GRN}$SCRIPT_FILE_NAME is up-to-date!${CRS}"
|
echo -e "\n ${GRN}$SCRIPT_FILE_NAME is up-to-date!${CRS}\n"
|
||||||
break
|
break
|
||||||
|
|
||||||
elif [[ "$CONFIRM_SCRIPT_INSTALL" == "n" || "$CONFIRM_SCRIPT_INSTALL" == "N" ]] ; then
|
elif [[ "$CONFIRM_SCRIPT_INSTALL" == "n" || "$CONFIRM_SCRIPT_INSTALL" == "N" ]] ; then
|
||||||
|
|
@ -581,11 +963,11 @@ update_script() {
|
||||||
|
|
||||||
### CHECK FOR EMPTY VERSION TAGS
|
### CHECK FOR EMPTY VERSION TAGS
|
||||||
if [ -z "$SCRIPT_VERSION" ] ; then
|
if [ -z "$SCRIPT_VERSION" ] ; then
|
||||||
echo -e "\n ${RED}Empty version tag from ${CYN}local script${RED}! Can't compare, exiting...${CRS}"
|
echo -e "\n ${RED}Empty version tag from ${CYN}local script${RED}! Can't compare, exiting...${CRS}\n"
|
||||||
exit
|
exit
|
||||||
|
|
||||||
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}\n"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -602,7 +984,6 @@ update_script() {
|
||||||
|
|
||||||
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
|
||||||
echo
|
|
||||||
|
|
||||||
if [[ "$CONFIRM_SCRIPT_UPDATE" == "" || "$CONFIRM_SCRIPT_UPDATE" == "y" || "$CONFIRM_SCRIPT_UPDATE" == "Y" ]] ; then
|
if [[ "$CONFIRM_SCRIPT_UPDATE" == "" || "$CONFIRM_SCRIPT_UPDATE" == "y" || "$CONFIRM_SCRIPT_UPDATE" == "Y" ]] ; then
|
||||||
if ! [ -d "$BACKUP_PATH" ] ; then
|
if ! [ -d "$BACKUP_PATH" ] ; then
|
||||||
|
|
@ -618,11 +999,11 @@ update_script() {
|
||||||
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}\n"
|
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
|
||||||
|
|
||||||
|
|
@ -633,7 +1014,7 @@ update_script() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### COMPARE APP VERSION
|
#################### COMPARE APP VERSION ####################
|
||||||
app_version_info() {
|
app_version_info() {
|
||||||
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}$APP_SOURCE Version :\t${CRS}$APP_SOURCE_VERSION\n"
|
||||||
|
|
@ -669,17 +1050,18 @@ compare_version() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
### HELP
|
#################### HELP ####################
|
||||||
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 | -b | -r | -c | -s | -S | -h ]\n"
|
echo -e "Syntax: $SCRIPT_FILE_NAME [ -i | -l | -a | -u | -b | -B | -r | -c | -s | -S | -h ]\n"
|
||||||
echo -e "Options:\n"
|
echo -e "Options:\n"
|
||||||
echo -e "\t-i\tInstall $APP_NAME_LONG from $APP_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"
|
echo -e "\t-a\tCreate alias for $SCRIPT_FILE_NAME"
|
||||||
echo -e "\t-u\tUpdate $APP_NAME_LONG from $APP_SOURCE"
|
echo -e "\t-u\tUpdate $APP_NAME_LONG from $APP_SOURCE"
|
||||||
echo -e "\t-b\tBackup $APP_NAME_LONG & configuration"
|
echo -e "\t-b\tBackup $APP_NAME_LONG & configuration"
|
||||||
|
echo -e "\t-B\tRestore $APP_NAME_LONG & configuration from backup"
|
||||||
echo -e "\t-r\tRemove $APP_NAME_LONG"
|
echo -e "\t-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"
|
||||||
|
|
@ -691,7 +1073,7 @@ help() {
|
||||||
echo -e "\t${CYN}${SCRIPT_PATH}${CRS}\t\t\tScript location\n"
|
echo -e "\t${CYN}${SCRIPT_PATH}${CRS}\t\t\tScript location\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
### EXIT CLEAN
|
#################### EXIT CLEAN ####################
|
||||||
exit_clean() {
|
exit_clean() {
|
||||||
if [ -d "$TMP" ] ; then
|
if [ -d "$TMP" ] ; then
|
||||||
rm -rf $TMP
|
rm -rf $TMP
|
||||||
|
|
@ -700,10 +1082,9 @@ exit_clean() {
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
########## MAIN ##########
|
########################### MAIN ###########################
|
||||||
|
|
||||||
## GET OPTIONS
|
while getopts ":i,:l,:a,:u,:b,:B,: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
|
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}"
|
echo -e "\n${YEL}Option ${RED}$1${YEL} not valid! Use only one parameter at a time...${CRS}"
|
||||||
|
|
@ -713,6 +1094,7 @@ while getopts ":i,:l,:a,:u,:b,:r,:c,:s,:S,:h" OPTION ; do
|
||||||
|
|
||||||
case $OPTION in
|
case $OPTION in
|
||||||
i)
|
i)
|
||||||
|
TARGET="INSTALL"
|
||||||
echo -e "\n ${YEL}Installing $APP_NAME_LONG...${CRS}\n"
|
echo -e "\n ${YEL}Installing $APP_NAME_LONG...${CRS}\n"
|
||||||
if [ "$#" -gt "1" ] ; then
|
if [ "$#" -gt "1" ] ; then
|
||||||
ALL_PARAMETER=$@
|
ALL_PARAMETER=$@
|
||||||
|
|
@ -725,6 +1107,7 @@ while getopts ":i,:l,:a,:u,:b,:r,:c,:s,:S,:h" OPTION ; do
|
||||||
fi
|
fi
|
||||||
dependency_check
|
dependency_check
|
||||||
arch_check
|
arch_check
|
||||||
|
path_correction
|
||||||
install_application
|
install_application
|
||||||
exit_clean ;;
|
exit_clean ;;
|
||||||
|
|
||||||
|
|
@ -759,6 +1142,7 @@ while getopts ":i,:l,:a,:u,:b,:r,:c,:s,:S,:h" OPTION ; do
|
||||||
exit_clean ;;
|
exit_clean ;;
|
||||||
|
|
||||||
b)
|
b)
|
||||||
|
TARGET="BACKUP"
|
||||||
echo -e "\n ${YEL}Backing up $APP_NAME_LONG...${CRS}"
|
echo -e "\n ${YEL}Backing up $APP_NAME_LONG...${CRS}"
|
||||||
if [ "$#" -gt "1" ] ; then
|
if [ "$#" -gt "1" ] ; then
|
||||||
ALL_PARAMETER=$@
|
ALL_PARAMETER=$@
|
||||||
|
|
@ -770,13 +1154,41 @@ while getopts ":i,:l,:a,:u,:b,:r,:c,:s,:S,:h" OPTION ; do
|
||||||
elif [[ "$PARAMETER" == "pbzip2" || "$PARAMETER" == "gzip" || "$PARAMETER" == "bzip2" || "$PARAMETER" == "zip" ]] ; then
|
elif [[ "$PARAMETER" == "pbzip2" || "$PARAMETER" == "gzip" || "$PARAMETER" == "bzip2" || "$PARAMETER" == "zip" ]] ; then
|
||||||
BACKUP_COMPRESSION_OVERRIDE=$PARAMETER
|
BACKUP_COMPRESSION_OVERRIDE=$PARAMETER
|
||||||
|
|
||||||
elif [ -d "$PARAMETER" ] ; then
|
elif [[ -d "$PARAMETER" || -d "$(pwd)/$PARAMETER" ]] ; then
|
||||||
BACKUP_PATH=$PARAMETER
|
BACKUP_PATH=$PARAMETER
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
path_correction
|
||||||
call_backup
|
call_backup
|
||||||
exit ;;
|
exit_clean ;;
|
||||||
|
|
||||||
|
B)
|
||||||
|
TARGET="BACKUP"
|
||||||
|
echo -e "\n ${YEL}Restoring $APP_NAME_LONG from backup...${CRS}"
|
||||||
|
if [ "$#" -gt "1" ] ; then
|
||||||
|
ALL_PARAMETER=$@
|
||||||
|
|
||||||
|
for PARAMETER in ${ALL_PARAMETER[@]} ; do
|
||||||
|
if [[ "$PARAMETER" == "script" || "$PARAMETER" == "config" || "$PARAMETER" == "app" || "$PARAMETER" == "full" ]] ; then
|
||||||
|
BACKUP_TYPE=$PARAMETER
|
||||||
|
|
||||||
|
elif [[ -d $PARAMETER || -d $(pwd)/$PARAMETER ]] ; then
|
||||||
|
BACKUP_PATH=$PARAMETER
|
||||||
|
|
||||||
|
else
|
||||||
|
BACKUP_TYPE=*
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
else
|
||||||
|
BACKUP_TYPE=*
|
||||||
|
|
||||||
|
fi
|
||||||
|
dependency_check
|
||||||
|
path_correction
|
||||||
|
select_backup
|
||||||
|
exit_clean ;;
|
||||||
|
|
||||||
r)
|
r)
|
||||||
echo -e "\n ${YEL}Removing $APP_NAME_LONG...${CRS}\n"
|
echo -e "\n ${YEL}Removing $APP_NAME_LONG...${CRS}\n"
|
||||||
|
|
@ -814,8 +1226,6 @@ done
|
||||||
## ENVIRONMENT CHECK
|
## ENVIRONMENT CHECK
|
||||||
dependency_check
|
dependency_check
|
||||||
arch_check
|
arch_check
|
||||||
|
|
||||||
## CHECK LOCAL INSTALL
|
|
||||||
local_check
|
local_check
|
||||||
|
|
||||||
## UPDATE
|
## UPDATE
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ APP_NAME_LONG="Helium Web Browser"
|
||||||
ARCH="x86_64"
|
ARCH="x86_64"
|
||||||
FILE_EXTENSION="AppImage"
|
FILE_EXTENSION="AppImage"
|
||||||
APP_SOURCE="GitHub"
|
APP_SOURCE="GitHub"
|
||||||
NOTIFY_NAME="Helium Helper"
|
|
||||||
SCRIPT_NAME="$APP_NAME Launcher Updater"
|
SCRIPT_NAME="$APP_NAME Launcher Updater"
|
||||||
PARENT_SCRIPT_FILE_NAME="helium_helper.sh"
|
PARENT_SCRIPT_FILE_NAME="helium_helper.sh"
|
||||||
SCRIPT_FILE_NAME="helium_launcher_update.sh"
|
SCRIPT_FILE_NAME="helium_launcher_update.sh"
|
||||||
|
|
@ -17,6 +16,9 @@ SCRIPT_VERSION="0.5.9.1"
|
||||||
LOG_DATE=$(date)
|
LOG_DATE=$(date)
|
||||||
DATE=$(date +"%d%m%y")
|
DATE=$(date +"%d%m%y")
|
||||||
|
|
||||||
|
## NOTIFICATIONS
|
||||||
|
NOTIFY_NAME="Helium Helper"
|
||||||
|
|
||||||
## LOCATIONS
|
## LOCATIONS
|
||||||
TMP=/tmp/$APP_NAME
|
TMP=/tmp/$APP_NAME
|
||||||
INSTALL_PATH=$HOME/.apps/$APP_NAME
|
INSTALL_PATH=$HOME/.apps/$APP_NAME
|
||||||
|
|
@ -87,6 +89,15 @@ dependency_check () {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
### DE CHECK
|
||||||
|
desktop_environment() {
|
||||||
|
ALTERNATIVE_NOTIFY="--app-name="$NOTIFY_NAME""
|
||||||
|
|
||||||
|
if [[ "$(echo $XDG_CURRENT_DESKTOP | grep -iF "kde")" || "$(echo $XDG_CURRENT_DESKTOP | grep -iF "gnome")" ]] ; then
|
||||||
|
NOTIFY_NAME=$ALTERNATIVE_NOTIFY
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
### BACKUP
|
### BACKUP
|
||||||
backup_helium() {
|
backup_helium() {
|
||||||
if [[ -d "$INSTALL_PATH" || -d "$SCRIPT_PATH" || -d $APP_CONFIG_PATH ]] ; then
|
if [[ -d "$INSTALL_PATH" || -d "$SCRIPT_PATH" || -d $APP_CONFIG_PATH ]] ; then
|
||||||
|
|
@ -154,13 +165,13 @@ backup_helium() {
|
||||||
cd $TMP && rm -rf backup
|
cd $TMP && rm -rf backup
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "$LOG_DATE | Backup - Backup (uncompressed) written to $BACKUP_PATH" >> $LOG
|
echo "$LOG_DATE | Backup (uncompressed) written to $BACKUP_PATH" >> $LOG
|
||||||
mkdir -p $BACKUP_PATH
|
mkdir -p $BACKUP_PATH
|
||||||
mv $TMP/backup $BACKUP_PATH/$APP_NAME.auto_backup_$DATE
|
mv $TMP/backup $BACKUP_PATH/$APP_NAME.auto_backup_$DATE
|
||||||
cd $TMP && rm -rf backup
|
cd $TMP && rm -rf backup
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "$LOG_DATE | Backup - Backup (compressed $BACKUP_COMPRESSION archive) written to $BACKUP_PATH" >> $LOG
|
echo "$LOG_DATE | Backup (compressed $BACKUP_COMPRESSION archive) written to $BACKUP_PATH" >> $LOG
|
||||||
notify-send --icon="$ICON" "$NOTIFY_NAME" "Backup created"
|
notify-send --icon="$ICON" "$NOTIFY_NAME" "Backup created"
|
||||||
cd $CWD
|
cd $CWD
|
||||||
fi
|
fi
|
||||||
|
|
@ -353,6 +364,9 @@ done
|
||||||
## DEPENDENCY CHECK
|
## DEPENDENCY CHECK
|
||||||
dependency_check
|
dependency_check
|
||||||
|
|
||||||
|
## DE CHECK
|
||||||
|
desktop_environment
|
||||||
|
|
||||||
## UPDATE
|
## UPDATE
|
||||||
update_helium
|
update_helium
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue