summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcompare_versions.sh27
-rwxr-xr-xfetch_info.sh105
-rwxr-xr-xupdate_ungoogled_chromium.sh (renamed from update_ungoogled_chromium-portable_linux_64.sh)58
3 files changed, 49 insertions, 141 deletions
diff --git a/compare_versions.sh b/compare_versions.sh
deleted file mode 100755
index 757100d..0000000
--- a/compare_versions.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-
-# Bash script to compare ungoogled-chromium version numbers
-# $1 -> up-to-date version number (from atom feed)
-# $2 -> currently installed version number
-# Return Values:
- # 0 -> installed version is up-to-date
- # 1 -> installed version can be upgraded
-
-
-# Break into arrays
-IFS='.'
-read -ra V1 <<< "$1"
-read -ra V2 <<< "$2"
-
-# Determine shorter array (for the loop)
-LENGTH=${#V1[@]}
-
-for (( i = 0 ; i < LENGTH ; i++ )); do
- if [ "${V1[$i]}" -gt "${V2[$i]}" ]; then
- exit 1
- elif [ "${V1[$i]}" -lt "${V2[$i]}" ]; then
- exit 0
- fi
-done
-
-exit 0
diff --git a/fetch_info.sh b/fetch_info.sh
deleted file mode 100755
index 601f394..0000000
--- a/fetch_info.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/bash
-
-# Bash script to query for information about latest version of ungoogled-chromium (for specific version)
-# $1 -> platform name
-# Return Values:
- # 0 -> error
- # 1 -> success
-
-# URL for atom feed
-ATOM_URL="https://raw.githubusercontent.com/ungoogled-software/ungoogled-chromium-binaries/master/feed.xml"
-
-PARSED_XML=$(curl -s $ATOM_URL | xml2)
-
-# Get table of available platforms, with versions, and URLs on the following line
-PLATFORM_TABLE=$(echo "$PARSED_XML" | grep -E '(/feed/entry/title=)|(/feed/entry/link/@href=)' | sed 's/^.*=//g')
-
-# echo "$PLATFORM_TABLE"
-
-
-# Set DEFAULT_PLATFORM
-if [ -n "$1" ]; then
- PLATFORM="$1"
-else
- echo "Error: $0 missing argument"
- exit 0
-fi
-
-# grep for PLATFORM in PLATFORM_TABLE, pull out two lines, starting from matching LINE_NUMBER
-LINE_NUMBER=$(echo "$PLATFORM_TABLE" | grep -m 1 -n "$PLATFORM" | cut -d ':' -f 1)
-echo "$PLATFORM_TABLE" | sed -n "$LINE_NUMBER,$((LINE_NUMBER+1))p"
-
-exit 1
-
-# """
-# ---
-#
-# # Function to print a message that the currently installed ungoogled-chromium is up to date
-# nothing_to_do() {
-# echo "$UG_PATH is up to date"
-# }
-#
-# # Function to check if $1 is higher version than $2
-# # $1 -> remote version (example: 91.0.4472.164)
-# # $2 -> local version (example: 91.0.4472.114)
-# # Return value:
-# # 0 -> $1 <= $2 (no need to update)
-# # 1 -> $1 > $2 (update available)
-# compare_version() {
-# echo "$1"
-# echo "$2"
-#
-# # Break into arrays
-# local IFS='.'
-# read -ra V1 <<< "$1"
-# read -ra V2 <<< "$2"
-#
-# for val in "${V1[@]}"; do
-# echo "$val"
-# done
-# echo ${#V1[@]}
-# for val in "${V2[@]}"; do
-# echo "$val"
-# done
-# echo ${#V2[@]}
-#
-# # Determine shorter array (for the loop)
-# local LENGTH=${#V1[@]}
-#
-# for (( i = 0 ; i < LENGTH ; i++ )); do
-# if [ "${V1[$i]}" -gt "${V2[$i]}" ]; then
-# return 1
-# elif [ "${V1[$i]}" -lt "${V2[$i]}" ]; then
-# return 0
-# fi
-# done
-#
-# return 0
-# }
-#
-#
-# # DEBUG
-# #compare_version "91.0.4472.164" "91.0.4472.114"
-#
-# # Determine local version if ungoogled-chromium is installed
-# if [ -x "$UG_PATH" ]; then
-# VERSION=$($UG_PATH --version | grep -E -o "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
-# echo "$VERSION"
-# fi
-#
-# # If ungoogled-chromium is installed on the machine, check if there is a newer version
-# LATEST=$(echo "$PLATFORM_TABLE" | grep "$DEFAULT_PLATFORM")
-# # TODO handle ambiguous DEFAULT_PLATFORM
-# # TODO handle if unknown DEFAULT_PLATFORM
-#
-# if [ -n "$VERSION" ]; then
-#
-# compare_version "$(echo "$LATEST" | head -n 1 | grep -E -o "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")" "$VERSION"
-# if [ $? -eq 0 ]; then
-# nothing_to_do
-# exit
-# else
-# echo "Gotta update!"
-# fi
-# fi
-# """
diff --git a/update_ungoogled_chromium-portable_linux_64.sh b/update_ungoogled_chromium.sh
index 6b118e8..c433182 100755
--- a/update_ungoogled_chromium-portable_linux_64.sh
+++ b/update_ungoogled_chromium.sh
@@ -12,6 +12,10 @@
# If checking for updates: user must pass a symlink for ungoogled-chromium (this is typically just the command name if a symlink is part of the path)
# Use the symlink target to determine installation directory
+# URL for atom feed
+ATOM_URL="https://raw.githubusercontent.com/ungoogled-software/ungoogled-chromium-binaries/master/feed.xml"
+
+# Default platform to install/update
PLATFORM="Portable Linux 64-bit"
@@ -23,13 +27,47 @@ print_help() {
echo "LOCATION is the desired install location for ungoogled-chromium. It does not need to be specified unless installing ungoogled-chromium for the first time"
}
-# Function to determine absolute path of helper scripts
-# $1 -> script name
-get_absolute_path() {
- echo "$(dirname "$(which "$1")")/$1"
+# Function to compare ungoogled-chromium version numbers
+# $1 -> up-to-date version number (from atom feed)
+# $2 -> currently installed version number
+# Return Values:
+ # 0 -> installed version is up-to-date
+ # 1 -> installed version can be upgraded
+compare_versions() {
+ # Break into arrays
+ local IFS='.'
+ read -ra V1 <<< "$1"
+ read -ra V2 <<< "$2"
+
+ # Determine shorter array (for the loop)
+ local LENGTH=${#V1[@]}
+
+ for (( i = 0 ; i < LENGTH ; i++ )); do
+ if [ "${V1[$i]}" -gt "${V2[$i]}" ]; then
+ return 1
+ elif [ "${V1[$i]}" -lt "${V2[$i]}" ]; then
+ return 0
+ fi
+ done
+
+ return 0
+}
+
+# Function to query for information about latest version of ungoogled-chromium (for specific version)
+# $1 -> platform name
+# Return Values:
+ # 0 -> error
+ # 1 -> success
+fetch_info() {
+ # Get table of available platforms, with versions, and URLs on the following line
+ local PLATFORM_TABLE=$(echo "$PARSED_XML" | grep -E '(/feed/entry/title=)|(/feed/entry/link/@href=)' | sed 's/^.*=//g')
+
+ # grep for PLATFORM in PLATFORM_TABLE, pull out two lines, starting from matching LINE_NUMBER
+ local LINE_NUMBER=$(echo "$PLATFORM_TABLE" | grep -m 1 -n "$PLATFORM" | cut -d ':' -f 1)
+ echo "$PLATFORM_TABLE" | sed -n "$LINE_NUMBER,$((LINE_NUMBER+1))p"
}
-# Function to determine path to install to
+# Function to determine path to install to (and to perform sanity checks on that path)
# $1 -> LOCATION or LINK target
# Return Values:
# 0 -> failed, should print_help and exit after returning
@@ -61,13 +99,15 @@ if [ -z "$1" ]; then
fi
# Fetch info, break and store into variables
-FULL_INFO=$($(get_absolute_path "fetch_info.sh") "$PLATFORM")
+PARSED_XML=$(curl -s $ATOM_URL | xml2)
-if [ $? -eq 0 ]; then
- echo "Error: Could not get latest version info"
+if [ ! $? -eq 0 ]; then
+ echo "Error: Could not parse atom URL $ATOM_URL"
exit 0
fi
+FULL_INFO=$(fetch_info "$PLATFORM")
+
NAME=$(echo "$FULL_INFO" | head -n 1 | cut -d ':' -f 1)
VERSION=$(echo "$FULL_INFO" | head -n 1 | cut -d ':' -f 2 | sed 's/^[ ]*//g' | grep -E -o "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
URL=$(echo "$FULL_INFO" | sed -n "2p")
@@ -85,7 +125,7 @@ if [ -h "$1" ] && [ "$(readlink -f "$1" | grep -E -o "[/][^/]*$")" == "/chrome-w
MY_VERSION=$($1 --version | grep -E -o "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
# Compare versions to determine if an update is necessary
- $(get_absolute_path "compare_versions.sh") "$VERSION" "$MY_VERSION"
+ compare_versions "$VERSION" "$MY_VERSION"
if [ $? -eq 0 ]; then
echo "ungoogled-chromium $MY_VERSION is up to date"
exit 2