75 lines
1.7 KiB
Bash
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
|