summaryrefslogtreecommitdiffstats
path: root/proxy/buildconf/scripts/build-jar-dir
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