svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.framework / org.gvsig.andami / src / main / resources-application / tools / mkexec @ 42829
History | View | Annotate | Download (6.53 KB)
1 |
#!/bin/bash |
---|---|
2 |
|
3 |
#set -x |
4 |
set -e |
5 |
|
6 |
#============================================= |
7 |
# JREs to use |
8 |
URL_JRE_FOLDER="http://downloads.gvsig.org/download/gvsig-desktop-testing/pool/jre" |
9 |
|
10 |
GVSPKG_JRE_lin_x86_64="gvSIG-desktop-2.3.0-jre-1.8.0-72-testing-lin-x86_64-j1_8.gvspkg" |
11 |
GVSPKG_JRE_lin_x86="gvSIG-desktop-2.3.0-jre-1.8.0-92-testing-lin-x86-j1_8.gvspkg" |
12 |
GVSPKG_JRE_win_x86_64="gvSIG-desktop-2.3.0-jre-1.8.0-65-testing-win-x86_64-j1_8.gvspkg" |
13 |
GVSPKG_JRE_win_x86="gvSIG-desktop-2.3.0-jre-1.8.0-73-testing-win-x86-j1_8.gvspkg" |
14 |
|
15 |
#============================================= |
16 |
# self extractors to use |
17 |
URL_SELFEXTRACT_FOLDER="http://downloads.gvsig.org/download/gvsig-desktop/runtimes/selfextract" |
18 |
|
19 |
#============================================= |
20 |
# Where to find izpack installers |
21 |
URL_DISTS="http://downloads.gvsig.org/download/gvsig-desktop-testing/dists" |
22 |
|
23 |
|
24 |
|
25 |
#============================================= |
26 |
# for wget >= 1.16 |
27 |
WGET_SHOW_PROGRESSBAR="--show-progress" |
28 |
WGET_SHOW_PROGRESSBAR="" |
29 |
|
30 |
|
31 |
mkexec_lin() { |
32 |
OS="lin" |
33 |
ARCH=$1 |
34 |
INSTALL_JAR="$2" |
35 |
WORKINGFOLDER="$3" |
36 |
|
37 |
INSTALL_JAR_BASENAME=$(basename "$INSTALL_JAR") |
38 |
GVSPKG_JRE="GVSPKG_JRE_${OS}_${ARCH}" |
39 |
GVSPKG_JRE="${!GVSPKG_JRE}" |
40 |
SELF_EXTRACT="selfextract-${OS}-${ARCH}" |
41 |
DATA_FOLDER="$WORKINGFOLDER/data-$OS-$ARCH" |
42 |
DATA_ARCHIVE="$WORKINGFOLDER/data-$OS-$ARCH.tar" |
43 |
|
44 |
cd "$WORKINGFOLDER" |
45 |
|
46 |
echo "Making selfextract for ${OS} ${ARCH} using:" |
47 |
echo " selfextract: ${SELF_EXTRACT}" |
48 |
echo " jre: ${GVSPKG_JRE}" |
49 |
echo " java installer: ${INSTALL_JAR_BASENAME}" |
50 |
echo " working folder: ${WORKINGFOLDER}" |
51 |
|
52 |
|
53 |
echo "Remove previous temporary files" |
54 |
rm -f "$DATA_ARCHIVE" |
55 |
rm -rf "$DATA_FOLDER" |
56 |
|
57 |
if [ ! -f ${SELF_EXTRACT} ] ; then |
58 |
echo "Downloading selfextract program ${SELF_EXTRACT}" |
59 |
wget -q $WGET_SHOW_PROGRESSBAR "$URL_SELFEXTRACT_FOLDER/$OS-$ARCH/${SELF_EXTRACT}" |
60 |
chmod a+x ${SELF_EXTRACT} |
61 |
fi |
62 |
|
63 |
if [ ! -f "${GVSPKG_JRE}" ] ; then |
64 |
echo "Downloading JRE $URL_JRE_FOLDER/${GVSPKG_JRE}" |
65 |
wget -q $WGET_SHOW_PROGRESSBAR "$URL_JRE_FOLDER/${GVSPKG_JRE}" |
66 |
fi |
67 |
|
68 |
echo "Creating temp folder" |
69 |
mkdir -p "$DATA_FOLDER" |
70 |
cd "$DATA_FOLDER" |
71 |
|
72 |
# ------------------------------------------------------------- |
73 |
# Preparamos en $DATA_FOLDER los ficheros que vamos a meter en el tar |
74 |
# que queremos que sea autoextraible y autoejecutable. |
75 |
# - La carpeta jre |
76 |
# - El instalador del izpack |
77 |
# - El autorun.sh |
78 |
# |
79 |
echo "Extracting JRE" |
80 |
unzip -q "../${GVSPKG_JRE}" 2>&1 | sed '/warning: stripped absolute path spec/ d' |
81 |
chmod a+x "jre/bin/java" |
82 |
|
83 |
echo "Coping $INSTALL_JAR" |
84 |
cp "$INSTALL_JAR" . |
85 |
|
86 |
echo "#!/bin/sh |
87 |
exec ./jre/bin/java -jar \"$INSTALL_JAR_BASENAME\" |
88 |
" > autorun.sh |
89 |
chmod a+x "autorun.sh" |
90 |
|
91 |
# ------------------------------------------------------------- |
92 |
# Creamos el tar |
93 |
echo "Creating archive file (tar)" |
94 |
tar cf "$DATA_ARCHIVE" . |
95 |
|
96 |
# ------------------------------------------------------------- |
97 |
# Creamos con el fichero tar generado el autoextraible |
98 |
echo "Making selfextract with archive file" |
99 |
{ |
100 |
cat ${WORKINGFOLDER}/${SELF_EXTRACT} |
101 |
echo ";!@selfextract@!" |
102 |
cat "$DATA_ARCHIVE" |
103 |
} > "${INSTALL_JAR%.jar}.run" |
104 |
echo "Created ${INSTALL_JAR%.jar}.run" |
105 |
echo "" |
106 |
} |
107 |
|
108 |
|
109 |
mkexec_win() { |
110 |
OS="win" |
111 |
ARCH=$1 |
112 |
INSTALL_JAR="$2" |
113 |
WORKINGFOLDER="$3" |
114 |
|
115 |
INSTALL_JAR_BASENAME=$(basename "$INSTALL_JAR") |
116 |
GVSPKG_JRE="GVSPKG_JRE_${OS}_${ARCH}" |
117 |
GVSPKG_JRE="${!GVSPKG_JRE}" |
118 |
SELF_EXTRACT="7zsd_LZMA_Dialogs-${OS}-${ARCH}.sfx" |
119 |
DATA_FOLDER="$WORKINGFOLDER/data-$OS-$ARCH" |
120 |
DATA_ARCHIVE="$WORKINGFOLDER/data-$OS-$ARCH.tar" |
121 |
|
122 |
cd "$WORKINGFOLDER" |
123 |
|
124 |
echo "Making selfextract for ${OS} ${ARCH} using:" |
125 |
echo " selfextract: ${SELF_EXTRACT}" |
126 |
echo " jre: ${GVSPKG_JRE}" |
127 |
echo " java installer: ${INSTALL_JAR_BASENAME}" |
128 |
echo " working folder: ${WORKINGFOLDER}" |
129 |
|
130 |
echo "Remove previous temporary files" |
131 |
rm -f "$DATA_ARCHIVE" |
132 |
rm -rf "$DATA_FOLDER" |
133 |
|
134 |
if [ ! -f ${SELF_EXTRACT} ] ; then |
135 |
echo "Downloading selfextract program" |
136 |
wget -q $WGET_SHOW_PROGRESSBAR "$URL_SELFEXTRACT_FOLDER/$OS-$ARCH/$SELF_EXTRACT" |
137 |
fi |
138 |
|
139 |
if [ ! -f "${GVSPKG_JRE}" ] ; then |
140 |
echo "Downloading JRE $URL_JRE_FOLDER/${GVSPKG_JRE}" |
141 |
wget -q $WGET_SHOW_PROGRESSBAR "$URL_JRE_FOLDER/${GVSPKG_JRE}" |
142 |
fi |
143 |
|
144 |
|
145 |
echo "Creating temp folder" |
146 |
mkdir -p "$DATA_FOLDER" |
147 |
cd "$DATA_FOLDER" |
148 |
|
149 |
|
150 |
# ------------------------------------------------------------- |
151 |
# Preparamos en $DATA_FOLDER los ficheros que vamos a meter en el 7zip |
152 |
# que queremos que sea autoextraible y autoejecutable. |
153 |
# - La carpeta jre |
154 |
# - El instalador del izpack |
155 |
# |
156 |
echo "Extracting JRE" |
157 |
unzip -q "../${GVSPKG_JRE}" 2>&1 | sed '/warning: stripped absolute path spec/ d' |
158 |
|
159 |
echo "Copying $INSTALL_JAR" |
160 |
cp "$INSTALL_JAR" . |
161 |
|
162 |
# ------------------------------------------------------------- |
163 |
# Creamos el tar |
164 |
echo "Creating archive file (7zip)" |
165 |
7z a "$DATA_ARCHIVE" . >/dev/null |
166 |
|
167 |
# ------------------------------------------------------------- |
168 |
# Creamos con el fichero 7zip generado el autoextraible |
169 |
echo "Making selfextract with archive file" |
170 |
{ |
171 |
cat ${WORKINGFOLDER}/${SELF_EXTRACT} |
172 |
echo ";!@Install@!UTF-8! |
173 |
RunProgram=\".\\jre\\bin\\javaw.exe -jar .\\${INSTALL_JAR_BASENAME}\" |
174 |
GUIMode=\"1\" |
175 |
ExtractTitle=\"gvSIG Desktop installation.\" |
176 |
Title=\"gvSIG Desktop installation.\" |
177 |
GUIFlags=\"6\" |
178 |
;!@InstallEnd@!" |
179 |
cat "$DATA_ARCHIVE" |
180 |
} > "${INSTALL_JAR%.jar}.exe" |
181 |
|
182 |
echo "Created ${INSTALL_JAR%.jar}.exe" |
183 |
echo "" |
184 |
} |
185 |
|
186 |
|
187 |
mkexec() { |
188 |
OS="$1" |
189 |
ARCH="$2" |
190 |
INSTALL_JAR="$3" |
191 |
WORKINGFOLDER="$4" |
192 |
mkdir -p "$WORKINGFOLDER" |
193 |
if [ "$OS" == "lin" ] ; then |
194 |
mkexec_lin "$ARCH" "$INSTALL_JAR" "$WORKINGFOLDER" |
195 |
else |
196 |
mkexec_win "$ARCH" "$INSTALL_JAR" "$WORKINGFOLDER" |
197 |
fi |
198 |
|
199 |
} |
200 |
|
201 |
main() { |
202 |
if [ "$#" != "5" ] ; then |
203 |
echo "$0: Usage: |
204 |
$0 gvsig-version gvsig-buildnumber gvsig-state gvsig-distribution folder" 2>&1 |
205 |
exit 1 |
206 |
fi |
207 |
GVSIG_VERSION="$1" |
208 |
GVSIG_BUILDNUMBER="$2" |
209 |
GVSIG_STATE="$3" |
210 |
GVSIG_DISTRIBUTION="$4" |
211 |
ROOTFOLDER="$5" |
212 |
|
213 |
echo " |
214 |
mkexec |
215 |
root folder=$ROOTFOLDER |
216 |
" |
217 |
mkdir -p "$ROOTFOLDER" |
218 |
|
219 |
for os_arch in "lin x86_64" "lin x86" "win x86_64" "win x86" |
220 |
do |
221 |
cd "$ROOTFOLDER" |
222 |
OS="${os_arch/ */}" |
223 |
ARCH="${os_arch/* /}" |
224 |
INSTALL_JAR_BASENAME="gvSIG-desktop-${GVSIG_VERSION}-${GVSIG_BUILDNUMBER}-${GVSIG_STATE}-${OS}-${ARCH}-${GVSIG_DISTRIBUTION}.jar" |
225 |
INSTALL_JAR="$ROOTFOLDER/$INSTALL_JAR_BASENAME" |
226 |
if [ ! -f "${INSTALL_JAR}" ] ; then |
227 |
echo "Downloading installer ${INSTALL_JAR_BASENAME}" |
228 |
wget -q $WGET_SHOW_PROGRESSBAR "$URL_DISTS/${GVSIG_VERSION}/builds/${GVSIG_BUILDNUMBER}/${INSTALL_JAR_BASENAME}" |
229 |
fi |
230 |
mkexec "$OS" "$ARCH" "$INSTALL_JAR" "$ROOTFOLDER/mkexec.tmp" |
231 |
done |
232 |
rm -rf "$ROOTFOLDER/mkexec.tmp" |
233 |
} |
234 |
|
235 |
main $@ |
236 |
|