source: osm/applications/editors/josm/debian/make_install_files.sh@ 12474

Last change on this file since 12474 was 12474, checked in by joerg, 17 years ago

Compile each plugin and only insert the ones compiling, use new target to compile josm; add more commets to build script; add color to build output; add logfiles for compilation and reduce compile output

  • Property svn:executable set to *
File size: 7.3 KB
Line 
1#!/bin/sh
2
3dst_path=debian/openstreetmap-josm
4
5#test -n "$1" || help=1
6quiet=" -q "
7verbose=1
8
9do_update_icons=true
10do_update_josm=true
11do_update_josm_ng=true
12do_update_plugins=true
13do_remove_jar=true
14
15for arg in "$@" ; do
16 case $arg in
17 --dest-path=*) # Destination path to install the final *.jar Files
18 dst_path=${arg#*=}
19 ;;
20
21 --no-update-icons) # Do not update icons
22 do_update_icons=false
23 ;;
24
25 --no-update-josm) # Do not update Josm
26 do_update_josm=false
27 ;;
28
29 --no-update-josm-ng) # Do not update Josm-NG
30 do_update_josm_ng=false
31 ;;
32
33 --no-update-plugins) # Do not update the plugins
34 do_update_plugins=false
35 ;;
36
37 --no-remove-jar) # Do not remove old jar Files
38 do_remove_jar=false
39 ;;
40
41 *)
42 echo ""
43 echo "!!!!!!!!! Unknown option $arg"
44 echo ""
45 help=1
46 ;;
47 esac
48done
49
50if [ -n "$help" ] ; then
51 # extract options from case commands above
52 options=`grep -E -e esac -e '\s*--.*\).*#' $0 | sed '/esac/,$d;s/.*--/ [--/; s/=\*)/=val]/; s/)[\s ]/]/; s/#.*\s*//; s/[\n/]//g;'`
53 options=`for a in $options; do echo -n " $a" ; done`
54 echo "$0 $options"
55 echo "
56
57 This script tries to compile and copy all josm Files
58 and all the plugins.
59 In case a plugin will not compile it is omitted.
60 "
61 # extract options + description from case commands above
62 grep -E -e esac -e '--.*\).*#' -e '^[\t\s ]+#' $0 | \
63 grep -v /bin/bash | sed '/esac/,$d;s/.*--/ --/;s/=\*)/=val/;s/)//;s/#//;'
64 exit;
65fi
66
67
68# define colors
69ESC=`echo -e "\033"`
70RED="${ESC}[91m"
71GREEN="${ESC}[92m"
72YELLOW="${ESC}[93m"
73BLUE="${ESC}[94m"
74MAGENTA="${ESC}[95m"
75CYAN="${ESC}[96m"
76WHITE="${ESC}[97m"
77BG_RED="${ESC}[41m"
78BG_GREEN="${ESC}[42m"
79BG_YELLOW="${ESC}[43m"
80BG_BLUE="${ESC}[44m"
81BG_MAGENTA="${ESC}[45m"
82BG_CYAN="${ESC}[46m"
83BG_WHITE="${ESC}[47m"
84BRIGHT="${ESC}[01m"
85UNDERLINE="${ESC}[04m"
86BLINK="${ESC}[05m"
87REVERSE="${ESC}[07m"
88NORMAL="${ESC}[0m"
89
90echo "copying Files to '$dst_path'"
91package_name=openstreetmap-josm
92dst_path=${dst_path%/}
93
94jar_path="$dst_path/usr/local/share/josm"
95mkdir -p "$jar_path"
96
97bin_path="$dst_path/usr/bin"
98mkdir -p "$bin_path"
99
100#plugin_dir="$dst_path/usr/local/share/josm/plugins"
101plugin_dir="$dst_path/usr/lib/josm/plugins"
102mkdir -p "$plugin_dir"
103
104mkdir -p "$dst_path/usr/share/josm"
105#( # map-icons to be symlinked
106# cd "$dst_path/usr/share/josm"
107# ln -s ../map-icons/classic.small images
108#)
109
110# --------------------------------------------
111# Try to update Icons
112if $do_update_icons ; then
113 echo "Now we try our best ... to get more icons ..."
114 find ../../share/map-icons/build/square.small -type f -name "*.png" | while read src_file ; do
115 file=${src_file#.*square.small/}
116 dst_dir="plugins/mappaint/icons/`dirname $file`"
117 mkdir -p $dst_dir
118 #echo "File $file"
119 cp -u "$src_file" "plugins/mappaint/icons/$file"
120 done
121fi
122mkdir -p "$dst_path/usr/lib/josm"
123
124# ------------------------------------------------------------------
125# Remove Old Jar Files in dist/*.jar
126
127$do_remove_jar && rm -f dist/*.jar
128$do_remove_jar && rm -f plugins/*/dist/*.jar
129
130# ------------------------------------------------------------------
131# Compile the Josm Main File(s)
132if $do_update_josm ; then
133 echo "------------- Compile Josm"
134 cd core
135 ant -q clean 2>build.err
136 ant -q dist >>build.log 2>>build.err
137 rc=$?
138 if [ "$rc" -ne "0" ] ; then
139 echo "${BG_RED}!!!!!!!!!! ERROR compiling josm core${NORMAL}"
140 exit -1
141 fi
142 cd ..
143fi
144
145# ------------------------------------------------------------------
146# Try to Compile as many Josm Plugins as possible
147if $do_update_plugins ; then
148 echo "------------- Compile Josm Plugins"
149 compiling_error=''
150 compiling_ok=''
151 cd plugins
152 plugins=`ls */build.xml | sed s,/build.xml,,`
153 echo "Plugins(`echo "$plugins"| wc -l`): " $plugins
154 for dir in $plugins; do
155 cd $dir
156 echo -n -e "----- $dir\r"
157 $do_remove_jar && rm -f dist/*.jar
158 $do_remove_jar && rm -f ../../dist/$dir.jar
159 rm -f *.log
160 echo "ant clean" >build.log
161 echo "ant clean" >build.err
162 ant -q clean >>build.log 2>>build.err
163 echo "ant dist" >>build.log
164 echo "ant dist" >>build.err
165 ant -q dist >>build.log 2>>build.err
166 rc=$?
167 number_of_jar=`(find . -name "*.jar" ;find ../../dist -name "$dir.jar")| grep -v '/lib'| wc -l`
168 if [ "$rc" -eq "0" ] ; then
169 echo "${GREEN}------------------------- compiling $dir successfull${NORMAL} ( $number_of_jar jar Files)"
170 grep -i -e error -e warn *.log *.err
171 compiling_ok="$compiling_ok $dir"
172 else
173 echo "${BG_RED}!!!!!!!!!! ERROR compiling $dir${NORMAL} ( $number_of_jar jar Files)"
174 #echo "Details see:"
175 #echo " `pwd`/build.log"
176 #echo " `pwd`/build.err"
177 compiling_error="$compiling_error $dir"
178 fi
179 find . -name "*.jar" | grep -v -e '/lib'
180
181 cd ..
182 done
183 if [ -n "$compiling_error" ] ; then
184 echo "${BG_RED}!!!!!!!!!! ERROR compiling Plugins${NORMAL}"
185 echo "Details see:"
186
187 err_log_path=''
188 for dir in $compiling_error; do
189 echo " `pwd`/$dir/build.log"
190 err_log_path="$err_log_path $dir/build.log $dir/build.err"
191 done
192 zip -q errors.zip $err_log_path
193 echo "${RED}Combined ERROR Logfiles are at: `pwd`/errors.zip${NORMAL}"
194 echo "${RED}Compiling ERRORs(`echo "$compiling_error"| wc -w`): $compiling_error${NORMAL}"
195 fi
196 echo "Compiling OK(`echo "$compiling_ok"| wc -w`): $compiling_ok"
197 cd ..
198fi
199
200# ------------------------------------------------------------------
201# Compile the Josm-ng Files
202if $do_update_josm_ng ; then
203 echo "------------- Compile Josm-ng"
204 cd ../josm-ng
205 ant -q clean
206 ant -q josm-ng-impl.jar >>build.log 2>>build.err
207 rc=$?
208 if [ "$rc" -ne "0" ] ; then
209 echo "------------- ERROR Compiling Josm-ng"
210 echo "${RED}!!!!!!!!!!!!!!!!! WARNING Josm-NG is not included into the package${NORMAL}"
211 #exit -1
212 fi
213 cd ../josm
214fi
215
216
217# ------------------------------------------------------------------
218echo "------------- Copy Jar Files"
219
220cp ./core/dist/josm-custom.jar $jar_path/josm.jar || exit -1
221rc=$?
222if [ "$rc" -ne "0" ] ; then
223 echo "${RED}------------- ERROR Compiling Josm-ng${NORMAL}"
224fi
225cp ../josm-ng/dist/josm-ng.jar $jar_path/josm-ng.jar || {
226 echo "${RED}!!!!!!!!!!!!!!!!! WARNING Josm-NG is not included into the package${NORMAL}"
227 #exit -1
228}
229
230# Find all existing plugin-jar files and generate a pluginlist from it
231plugin_jars=`find dist -name "*.jar"`
232plugins=''
233for src_fn in $plugin_jars ; do
234 fn="`basename ${src_fn}`"
235 dst_fn="$plugin_dir/$fn"
236 echo "cp $src_fn $dst_fn"
237 cp "$src_fn" "$dst_fn"
238 if [ "$?" -ne "0" ] ; then
239 echo "${RED}------------- ERROR Copying $src_fn ${NORMAL}"
240 exit -1
241 fi
242 plugin_name=${fn%.jar}
243 echo $plugin_name | grep -q -e plastic_laf -e lang && continue
244 plugins="$plugins$plugin_name,"
245done || exit -1
246
247# remove last empty plugin definition ,
248plugins=${plugins%,}
249
250echo "Activated Plugins:"
251echo "$plugins"
252
253# Copy words.cfg for spelling
254mkdir -p "$jar_path/speller"
255cp ../../utils/planet.osm/java/speller/words.cfg "$jar_path/speller/"
256
257# ------------------------------------------------------------------
258cp "debian/bin/josm.sh" "$bin_path/josm" || exit -1
259cp "debian/bin/josm-ng.sh" "$bin_path/josm-ng" || {
260 echo "!!!!!!!!!!!!!!!!! WARNING Josm-NG is not included into the package"
261 #exit -1
262}
263
264# add plugins to default preferences
265sed "s/PLUGIN_LIST/$plugins/;" <debian/bin/preferences >"$jar_path/preferences"
266
267# Copy default Bookmarks
268cp nsis/bookmarks "$jar_path/bookmarks"
Note: See TracBrowser for help on using the repository browser.