#!/bin/bash # ====================================================================== # # ENV INIT # # This is a helper tool for build processes with java and maven. # It sets a custom java and maven version # # ---------------------------------------------------------------------- # 2024-02-18 first lines <axel.hahn@unibe.ch> # ====================================================================== cd "$( dirname "${BASH_SOURCE[0]}")" || exit 1 typeset -A aJava typeset -A aMaven USAGE=" This is a helper script to set the shell environment for a wanted version of java and maven. SYNTAX: source $0 [options] OPTIONS: -j|--java <version> Set Java version -m|--maven <version> Set Maven version -h|--help Show this help " if [ "$#" -eq 0 ]; then echo "ERROR: parameter required. Use -h for help." exit 2 fi . "env_init.sh.cfg" || exit 3 # ---------------------------------------------------------------------- while [[ "$#" -gt 0 ]]; do case $1 in -h|--help) echo "$USAGE"; echo "Java versions:" for v in "${!aJava[@]}" do echo " $v ... ${aJava[$v]}" done echo echo "Maven versions:" for v in "${!aMaven[@]}" do echo " $v ... ${aMaven[$v]}" done echo exit 0 ;; -j|--java) if [ -z "${aJava[$2]}" ]; then echo "ERROR: java version $2 is unknown on this system" exit 4 fi if [ ! -x "${aJava[$2]}/bin/java" ]; then echo "ERROR: Path for java version $2 is wrong - ${aJava[$2]}/bin/java not executable" exit 5 fi echo ">>> Set JAVA version $2" export JAVA_HOME="${aJava[$2]}" export PATH="${aJava[$2]}/bin:${PATH}" echo "\$ java --version" java --version echo shift; shift; ;; -m|--maven) if [ -z "${aMaven[$2]}" ]; then echo "ERROR: maven version $2 is unknown on this system" exit 6 fi if [ ! -x "${aMaven[$2]}/bin/mvn" ]; then echo "ERROR: Path for mvn version $2 is wrong - ${aMaven[$2]}/bin/mvn not executable" exit 7 fi echo ">>> Set maven version $2" export PATH="${aMaven[$2]}/bin:${PATH}" echo "\$ mvn --version" mvn --version echo shift; shift; ;; *) if grep "^-" <<< "$1" >/dev/null ; then echo; echo "ERROR: Unknown parameter: $1"; echo "Use -h for help."; exit 8 fi break; ;; esac; done if [ -n "$*" ]; then echo "ERROR: No parameter supported. Use -h for help." exit 9 fi # ----------------------------------------------------------------------