#!/bin/sh # Import java functions #[ -r /usr/share/java-utils/java-functions ] \ # && . /usr/share/java-utils/java-functions || exit 1 # Prints help message usage() { /bin/cat >&2 << EOF_USAGE Usage: $0 [] [ ... ] With: linktype: -s, --soft, --symbolic create symbolic links (default) -c, --copy copy files ivy: ivy.xml containing dependencies lib_directory: name of an existing directory where all jars exist directory: name of an existing directory where links will be created jarX: name of a jar Example: jndi EOF_USAGE exit 2 } # override do_find_jar in java-functions do_find_jar() { unset _jar _jar=$(grep "name=\"$1\"" $_IVY_XML | grep -v "<\!--" | awk '{print $3,$4}' | \ sed 's/\"//g' | sed 's/name=//g' | sed 's/ rev=/-/g') if ! [ -z "$_jar" ] ; then echo "$lib_directory/$_jar.jar" return 0 fi return 1 } # $# acts like argc [ "$#" -lt "3" ] && usage unset _LINK_CMD unset _IVY_XML unset lib_directory unset repository unset jar_list unset debug while [ $# -gt 0 ] ; do case "$1" in -s|--soft|--symbolic) _LINK_CMD="/bin/ln -fs" ;; -c|--copy) _LINK_CMD="/bin/cp -f" ;; --debug) debug="1" ;; *) if [ -z "$_IVY_XML" ] ; then _IVY_XML=$1 if ! [ -r "$_IVY_XML" ] ; then echo "$0: error: $1 must be readable" >&2 exit 1 fi elif [ -z "$lib_directory" ] ; then lib_directory=$1 if ! [ -d "$lib_directory" -a -r "$lib_directory" ] ; then echo "$0: error: $1 must be a readable directory" >&2 exit 1 fi elif [ -z "$repository" ] ; then repository=$1 if ! [ -d "$repository" -a -w "$repository" ] ; then echo "$0: error: $1 must be a writable directory" >&2 exit 1 fi else jar_list="$jar_list $1" fi ;; esac shift done # find_jar is from java-functions for jar in $jar_list ; do unset _jar _jar=$(do_find_jar $jar) if ! [ -z "$_jar" ] ; then if ! [ -z "$debug" ] ; then echo "linking: $_LINK_CMD '$_jar' $repository" fi $_LINK_CMD $_jar $repository else echo "WARNING: $jar was not found." fi done