summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcompare_versions.sh37
-rwxr-xr-xfetch_info.sh105
-rwxr-xr-xungoogled-chromium-update.sh91
-rwxr-xr-xupdate_ungoogled_chromium-portable_linux_64.sh59
4 files changed, 201 insertions, 91 deletions
diff --git a/compare_versions.sh b/compare_versions.sh
new file mode 100755
index 0000000..b205a66
--- /dev/null
+++ b/compare_versions.sh
@@ -0,0 +1,37 @@
+#!/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"
+
+# DEBUG
+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)
+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
new file mode 100755
index 0000000..601f394
--- /dev/null
+++ b/fetch_info.sh
@@ -0,0 +1,105 @@
+#!/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/ungoogled-chromium-update.sh b/ungoogled-chromium-update.sh
deleted file mode 100755
index 7d1659d..0000000
--- a/ungoogled-chromium-update.sh
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/bin/bash
-
-# Shell script to install the latest version of ungoogled-chromium over the version on the machine if an update is available (using atom feed). User can specify a subgrouping (default is AppImage)
-
-# path for downloading ungoogled-chromium and comparing version numbers (FIXME WIP)
-# TODO write function to search through user's path for ungoogled-chromium
-UG_PATH="$HOME/Applications/appimage/ungoogled-chromium_87.0.4280.141-1.1_linux.AppImage"
-
-# Set default platform to look for new version from
-DEFAULT_PLATFORM="AppImage"
-
-# 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 "$PARSED_XML"
-echo "$PLATFORM_TABLE"
-
-
-# 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-portable_linux_64.sh
new file mode 100755
index 0000000..e8d7d32
--- /dev/null
+++ b/update_ungoogled_chromium-portable_linux_64.sh
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+# Shell script to update ungoogled-chromium Portable Linux 64-bit to the latest version
+# $1 -> Wrapper symlink location
+# $2 (optional) -> Install location
+
+# If first time installing: user must specify a symlink location and an installation directory
+# 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
+
+PLATFORM="Portable Linux 64-bit"
+
+
+# Print help message
+print_help() {
+ echo "Usage: $0 LINK [LOCATION]"
+ echo
+ echo "LINK is the path for a symlink pointing to the ungoogled-chromium executable"
+ 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"
+}
+
+
+# Exit if $1 does not exist
+if [ -z "$1" ]; then
+ echo "Error: too few arguments"
+ print_help
+ exit 0
+fi
+
+# Fetch info, break and store into variables
+FULL_INFO=$($(get_absolute_path "fetch_info.sh") "$PLATFORM")
+
+if [ $? -eq 0 ]; then
+ echo "Error: Could not get latest version info"
+ exit 0
+fi
+
+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")
+
+echo "$NAME"
+echo "$VERSION"
+echo "$URL"
+
+# Check installed version number (if exists)
+if [ -h "$1" ]; then
+ MY_VERSION=$($1 --version | grep -E -o "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
+ echo "$MY_VERSION"
+
+ # Compare versions to determine if an update is necessary
+fi
+