commit 592b959c241ad3fb633a6cc4f9f766321771383c
parent c6f53c876803a4af26e1000c17455cc09f04cd9b
Author: h88e22dgpeps56sg <52240714+h88e22dgpeps56sg@users.noreply.github.com>
Date: Fri, 28 Aug 2020 10:51:15 +0000
Updater.sh rework 2 (#1000)
* rework DOWNLOAD_METHOD, download_file, open_file
* remove legacy command leftover line
* return empty string if download fails and return/exit if this happens and show error message
* fix IFS var typo
* bump version
* add quotes
Co-authored-by: TotallyLeGIT <bbkqx24kxlgvgbss@mailban.de>
Diffstat:
1 file changed, 13 insertions(+), 19 deletions(-)
diff --git a/updater.sh b/updater.sh
@@ -2,7 +2,7 @@
## ghacks-user.js updater for macOS and Linux
-## version: 2.6
+## version: 2.7
## Author: Pat Johnson (@overdodactyl)
## Additional contributors: @earthlng, @ema-pe, @claustromaniac
@@ -42,9 +42,9 @@ ESR=false
# Download method priority: curl -> wget
DOWNLOAD_METHOD=''
if [[ $(command -v 'curl') ]]; then
- DOWNLOAD_METHOD='curl'
+ DOWNLOAD_METHOD='curl --max-redirs 3 -so'
elif [[ $(command -v 'wget') ]]; then
- DOWNLOAD_METHOD='wget'
+ DOWNLOAD_METHOD='wget --max-redirect 3 --quiet -O'
else
echo -e "${RED}This script requires curl or wget.\nProcess aborted${NC}"
exit 0
@@ -104,24 +104,16 @@ Optional Arguments:
#########################
# Download files
-download_file () {
- declare -r url=$1
+download_file () { # expects URL as argument ($1)
declare -r tf=$(mktemp)
- local dlcmd=''
- if [ $DOWNLOAD_METHOD = 'curl' ]; then
- dlcmd="curl -o $tf"
- else
- dlcmd="wget -O $tf"
- fi
-
- $dlcmd "${url}" &>/dev/null && echo "$tf" || echo '' # return the temp-filename (or empty string on error)
+ $DOWNLOAD_METHOD "${tf}" "$1" && echo "$tf" || echo '' # return the temp-filename or empty string on error
}
open_file () { #expects one argument: file_path
if [ "$(uname)" == 'Darwin' ]; then
open "$1"
- elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
+ elif [ "$(uname -s | cut -c -5)" == "Linux" ]; then
xdg-open "$1"
else
echo -e "${RED}Error: Sorry, opening files is not supported for your OS.${NC}"
@@ -203,7 +195,8 @@ update_updater () {
return 0 # User signified not to check for updates
fi
- declare -r tmpfile=$(download_file 'https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/updater.sh')
+ declare -r tmpfile="$(download_file 'https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/updater.sh')"
+ [ -z "${tmpfile}" ] && echo -e "${RED}Error! Could not download updater.sh${NC}" && return 1 # check if download failed
if [[ $(get_updater_version "${SCRIPT_DIR}/updater.sh") < $(get_updater_version "${tmpfile}") ]]; then
if [ $UPDATE = 'check' ]; then
@@ -238,7 +231,7 @@ add_override () {
cat "$input" >> user.js
echo -e "Status: ${GREEN}Override file appended:${NC} ${input}"
elif [ -d "$input" ]; then
- FSAVEIFS=$IFS
+ SAVEIFS=$IFS
IFS=$'\n\b' # Set IFS
FILES="${input}"/*.js
for f in $FILES
@@ -257,7 +250,8 @@ remove_comments () { # expects 2 arguments: from-file and to-file
# Applies latest version of user.js and any custom overrides
update_userjs () {
- declare -r newfile=$(download_file 'https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js')
+ declare -r newfile="$(download_file 'https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js')"
+ [ -z "${newfile}" ] && echo -e "${RED}Error! Could not download user.js${NC}" && return 1 # check if download failed
echo -e "Please observe the following information:
Firefox profile: ${ORANGE}$(pwd)${NC}
@@ -333,7 +327,6 @@ update_userjs () {
#########################
if [ $# != 0 ]; then
- readonly legacy_lc=$(echo $1 | tr '[A-Z]' '[a-z]')
# Display usage if first argument is -help or --help
if [ $1 = '--help' ] || [ $1 = '-help' ]; then
usage
@@ -377,7 +370,8 @@ if [ $# != 0 ]; then
ESR=true
;;
r)
- tfile=$(download_file 'https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js')
+ tfile="$(download_file 'https://raw.githubusercontent.com/ghacksuserjs/ghacks-user.js/master/user.js')"
+ [ -z "${tfile}" ] && echo -e "${RED}Error! Could not download user.js${NC}" && exit 1 # check if download failed
mv $tfile "${tfile}.js"
echo -e "${ORANGE}Warning: user.js was saved to temporary file ${tfile}.js${NC}"
open_file "${tfile}.js"