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