nutools/ujava

67 lines
1.7 KiB
Plaintext
Raw Permalink Normal View History

2013-08-27 15:14:44 +04:00
#!/bin/bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
urequire java
2013-08-27 15:14:44 +04:00
function display_help() {
uecho "$scriptname: Lancer un script après avoir sélectionné une version de java
USAGE
$scriptname [options] version [args...]
OPTIONS
-b, --bits 32|64|auto
--32
--64
Sélectionner une version 32 ou 64 bits de java
-e, --exact
Sélectionner la version *exacte* de java demandée, au lieu de la version
minimum correspondant à la version demandée.
Si la version requise de java n'est pas trouvée, retourner avec le code
d'erreur 254.
La version de java attendue peut-être exprimée de l'une des façons suivantes:
1.4 1.4+ 1.5 1.5+ 1.6 1.6+ 1.7 1.7+
Si args n'est pas spécifié, un shell est lancé dans lequel les variables
JAVA_HOME, JAVA, JAVAC et PATH sont mis à jour."
}
bits=
exact=
parse_opts + "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \
-b:,--bits: bits= \
-2,--32 bits=32 \
-4,--64 bits=64 \
-e,--exact exact=1 \
@ args -- "$@" && set -- "${args[@]}" || die "$args"
[ "$bits" == "auto" ] && bits=
javavers="${1:-1.5+}"; shift
javadesc="Java $javavers${bits:+ / $bits bits}"
estep "Sélection de $javadesc"
found=
if [ -n "$exact" ]; then
select_java_exact "$javavers" "$bits" && found=1
else
select_java "$javavers" "$bits" && found=1
fi
if [ -z "$found" ]; then
eerror "Impossible de trouver $javadesc"
exit 254
fi
eecho "JAVA_HOME=$JAVA_HOME"
if [ -n "$*" ]; then
estep "Lancement de $*"
if [ "${1%.jar}" != "$1" ]; then
exec java -jar "$@"
else
exec "$@"
fi
else
estep "Lancement d'un sous-shell"
exec "${SHELL:-bash}"
fi