mirror of
https://github.com/halcyon/asdf-java.git
synced 2024-10-06 07:42:09 +08:00
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:
parent
e6c4be8404
commit
add75d7169
18
README.md
18
README.md
@ -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
14
bin/asdf-java-wrapper
Executable 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'
|
76
bin/install
76
bin/install
@ -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
|
||||
|
@ -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
|
||||
")
|
||||
|
Loading…
Reference in New Issue
Block a user