blob: 4926b6b8096017d4d5e7f5dc98d12a7f7a4135dd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
#!/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 [<linktype>] <ivy> <lib_directory> <directory> <jar1> [<jar2> ... <jarn>]
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
|