Catch up on pull requests.

Update versions.
Format versions in list-all script better.
Log with colors.
Add asdf-java-wrapper script a light explanation.
This commit is contained in:
Tyler Cinnamon 2018-11-03 16:57:11 -05:00
parent e6c4be8404
commit add75d7169
4 changed files with 78 additions and 39 deletions

View File

@ -26,20 +26,16 @@ and switch versions like this:
asdf global java oracle-10.0.2
```
If you want or need `JAVA_HOME` set you can add this to your shell initialization (in `.bashrc`, for example):
If you need to disable colors, try:
```bash
function asdf_and_update_env() {
if \asdf "$@"; then
if [[ "$(\asdf current java 2>&1)" =~ (^([-_.a-zA-Z0-9]+)[[:space:]]*\(set by.*$) ]]; then
export JAVA_HOME=$(\asdf where java ${BASH_REMATCH[2]})
else
export JAVA_HOME=''
fi
fi
}
export ASDF_JAVA_PLAIN=truthy
```
alias asdf='asdf_and_update_env'
If you want or need `JAVA_HOME` set you can load our `asdf` wrapper to your shell initialization (in `.bashrc`, for example):
```bash
. ~/.asdf/plugins/java/bin/asdf-java-wrapper
```
If you need Gradle or Maven, you can use asdf plugins for those, too.

14
bin/asdf-java-wrapper Executable file
View File

@ -0,0 +1,14 @@
#!/usr/bin/env bash
# Credit: github.com/trustin
asdf_java_wrapper() {
if \asdf "$@"; then
if [[ "$(\asdf current java 2>&1)" =~ (^([-_.a-zA-Z0-9]+)[[:space:]]*\(set by.*$) ]]; then
export JAVA_HOME=$(\asdf where java ${BASH_REMATCH[2]})
else
export JAVA_HOME=''
fi
fi
}
alias asdf='asdf_java_wrapper'

View File

@ -3,7 +3,33 @@
# this is global for error reporting
ASDF_JAVA_ERROR=""
# Download the java source from Oracle, copy files and cleanup.
log() {
# set colors unless ASDF_JAVA_PLAIN is set
[[ -z $ASDF_JAVA_PLAIN ]] && tput setab $1 && tput setaf 0
echo -n "░asdf java $2░"
# set colors unless ASDF_JAVA_PLAIN is set
[[ -z $ASDF_JAVA_PLAIN ]] && tput sgr0 && tput setaf $1
echo " ${@:3}"
# unset colors
tput sgr0
}
log_info() {
log 2 ':)' "$@"
}
log_warning() {
log 3 ':o' "$@"
}
log_error() {
log 1 ':(' "$@"
}
# Download the java source from Oracle or OpenJDK, copy files and cleanup.
install_java() {
local versionstr=$1
local destdir=$2
@ -23,7 +49,6 @@ install_java() {
# Get the "variant" piece of the Oracle url.
get_variant() {
local distro=$1
echo $distro >> /tmp/distro
case "$(uname -s)" in
Linux)
case "$(uname -m)" in
@ -59,13 +84,13 @@ get_current_variant() {
local variant=$1
if [[ "$variant" == *"mac"* ]]; then
variant=$(echo $variant | sed -e 's/mac//')
variant=$(echo $variant | sed -e 's|mac||')
fi
if [[ "$variant" == *"tar"* ]]; then
echo $variant | sed -e 's/.tar/_bin.tar/'
echo $variant | sed -e 's|.tar|_bin.tar|'
elif [[ "$variant" == *"dmg"* ]]; then
echo $variant | sed -e 's/.dmg/_bin.dmg/'
echo $variant | sed -e 's|.dmg|_bin.dmg|'
fi
}
@ -86,25 +111,25 @@ get_java() {
local destdir=$4
local base=$(get_base_url $distro)
local oracle8_version=$(echo $version | sed -e 's/\./u/g')
local oracle8_version=$(echo $version | sed -e 's|\.|u|g')
case $distro-$version in
oracle-11) url=$base$version+28/55eed80b163941c8885ad9298e6d786a/jdk-$version'_'$(get_current_variant $variant) ;;
oracle-10.0.2) url=$base$version+13/19aef61b38124481863b1413dce1855f/jdk-$version'_'$(get_current_variant $variant) ;;
oracle-11.0.1) url=$base$version+13/90cf5d8f270a4347a95050320eef3fb7/jdk-$version'_'$(get_current_variant $variant) ;;
oracle-8.191) url=$base$oracle8_version-b12/2787e4a523244c269598db4e85c51e0c/jdk-$oracle8_version-$variant ;;
oracle-8.141) url=$base$oracle8_version-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-$oracle8_version-$variant ;;
oracle-8.131) url=$base$oracle8_version-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-$oracle8_version-$variant ;;
openjdk-10.0.2) url=$base'10'/$version/19aef61b38124481863b1413dce1855f/13/openjdk-$version'_'$variant ;;
oracle-8.141) url=$base$oracle8_version-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-$oracle8_version-$variant ;;
oracle-8.131) url=$base$oracle8_version-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-$oracle8_version-$variant ;;
openjdk-11) url=${base/\/GA\//\/ga\/}11/openjdk-11_$variant ;;
openjdk-10.0.2) url=$base'10'/$version/19aef61b38124481863b1413dce1855f/13/openjdk-$version'_'$variant ;;
*) ASDF_JAVA_ERROR="$version is not a supported version" ;;
esac
[[ -z "$ASDF_JAVA_ERROR" ]] || return
echo "---- ASDF JAVA MESSAGE ----"
echo "downloading: $url"
log_info downloading $url
curl -fLC - \
--progress-bar --silent \
--progress-bar \
--retry 3 --retry-delay 3 \
-b oraclelicense=accept-securebackup-cookie \
-o $destdir/$variant $url
@ -117,8 +142,7 @@ unpack_java() {
local variant=$1
local destdir=$2
echo "---- ASDF JAVA MESSAGE ----"
echo "expanding java dist"
log_info expanding java dist
case $variant in
*.tar.gz) unpack_tar $variant $destdir ;;
@ -203,23 +227,21 @@ unmount_dmg() {
[[ -z "$ASDF_JAVA_ERROR" ]] || \
ASDF_JAVA_ERROR="unmounting java dist"
echo "---- ASDF JAVA WARNING ----"
echo "The java dist is still mounted at $dir."
echo " Use `hdiutil unmount` to unmount it."
echo "----"
log_warning "The java dist is still mounted at $dir."
log_warning " Use hdiutil unmount to unmount it."
fi
}
#
# MAIN
#
install_java $ASDF_INSTALL_VERSION $ASDF_INSTALL_PATH
install_java "$ASDF_INSTALL_VERSION" "$ASDF_INSTALL_PATH"
if ! [[ -z "$ASDF_JAVA_ERROR" ]]; then
rm -rf $ASDF_INSTALL_PATH
echo "---- ASDF JAVA ERROR ----"
echo "asdf java failed while $ASDF_JAVA_ERROR"
echo "----"
if [[ -z "$ASDF_JAVA_ERROR" ]]; then
log_info "$ASDF_INSTALL_VERSION was installed successfully"
respond_to_failure
else
log_error "asdf java failed. $ASDF_JAVA_ERROR"
fi
unset ASDF_JAVA_ERROR

View File

@ -1,3 +1,10 @@
#!/bin/env bash
echo "oracle-8.131 oracle-8.141 oracle-8.181 oracle-10.0.2 openjdk-10.0.2"
echo $(echo "
oracle-8.131
oracle-8.141
oracle-8.191
oracle-11.0.1
openjdk-10.0.2
openjdk-11
")