Files
tide-java-utils/source-files/tide-java-utils
T

75 lines
1.7 KiB
Bash

#!/bin/bash
function help() {
echo "Tide Linux Java Utilities"
echo
echo "Available commands:"
echo "- tide-java set-default <version> | Sets the default java version"
echo "- tide-java get-default | Gets the default java version"
echo "- tide-java list | Lists available java versions"
}
function get_installed_java_versions() {
[ -d /usr/lib/java ] || return
for dir in $(find /usr/lib/java/ -mindepth 1 -maxdepth 1 -not -name 'default'); do
echo $(basename "$dir")
done
}
function get_default_java_version() {
# Return 1 if directory isn't found
[ -d /usr/lib/java/default/bin ] || return 1
local LINK_PATH=$(readlink /usr/lib/java/default)
echo $(basename "$LINK_PATH")
}
function set_default_java_version() {
# Return 1 if empty argument is given
[ -z "$1" ] && return 1
while read line; do
if [[ "$1" == "$line" ]]; then
ln -sf "$line" -T /usr/lib/java/default || return 1
return 0
fi
done < <(get_installed_java_versions)
return 1
}
case "$1" in
"set-default")
if [ $UID -ne 0 ]; then
echo "Root permissions are required to set default java version"
exit 1
fi
if set_default_java_version "$2"; then
echo "Default java version successfully set to $2"
else
echo "Could not set default java version to $2"
exit 1
fi
;;
"get-default")
echo -n "Current default java version: "
if ! get_default_java_version; then
echo "None"
exit 1
fi
;;
"list")
if ! get_installed_java_versions &> /dev/null; then
echo "No available java versions were found"
exit 1
fi
echo "Available java versions:"
while read line; do
echo "- $line"
done < <(get_installed_java_versions)
;;
*)
help
;;
esac