1
- #! /bin/bash
1
+ #! /bin/sh
2
2
3
3
#
4
4
# Copyright (c) 2009 Martin Decky
@@ -102,27 +102,27 @@ test_version() {
102
102
echo " Start testing the version of the installed software"
103
103
echo
104
104
105
- if [ -z " $1 " ] || [ " $1 " == " all" ] ; then
106
- PLATFORMS=( " amd64" " arm32" " arm64" " ia32" " ia64" " mips32" " mips32eb" " ppc32" " riscv64" " sparc64" )
105
+ if [ -z " $1 " ] || [ " $1 " = " all" ] ; then
106
+ PLATFORMS=' amd64 arm32 arm64 ia32 ia64 mips32 mips32eb ppc32 riscv64 sparc64'
107
107
else
108
- PLATFORMS=( " $1 " )
108
+ PLATFORMS=" $1 "
109
109
fi
110
110
111
111
112
112
if [ -z " ${CROSS_PREFIX} " ] ; then
113
113
CROSS_PREFIX=" /usr/local/cross"
114
114
fi
115
115
116
- for i in " ${ PLATFORMS[@]} "
116
+ for i in $ PLATFORMS
117
117
do
118
118
PLATFORM=" $i "
119
119
set_target_from_platform " $PLATFORM "
120
120
PREFIX=" ${CROSS_PREFIX} /bin/${HELENOS_TARGET} "
121
121
122
122
echo " == $PLATFORM =="
123
- test_app_version " Binutils" " ld" " GNU\ ld\ \(GNU\ Binutils\)\ ((\.|[ 0-9])+ )" " $BINUTILS_VERSION "
124
- test_app_version " GCC" " gcc" " gcc\ version\ ((\.|[ 0-9])+ )" " $GCC_VERSION "
125
- test_app_version " GDB" " gdb" " GNU\ gdb\ \(GDB\)\s+((\.|[ 0-9])+ )" " $GDB_VERSION "
123
+ test_app_version " Binutils" " ld" " GNU ld (.*) \([. 0-9]*\ )" " $BINUTILS_VERSION "
124
+ test_app_version " GCC" " gcc" " gcc version \([. 0-9]*\ )" " $GCC_VERSION "
125
+ test_app_version " GDB" " gdb" " GNU gdb (.*)[[:space:]]\+\([. 0-9]*\ )" " $GDB_VERSION "
126
126
done
127
127
128
128
exit
@@ -139,27 +139,25 @@ test_app_version() {
139
139
if [ ! -e $APP ]; then
140
140
echo " - $PKGNAME is missing"
141
141
else
142
- {
143
- OUT=$( ${APP} -v 2>&1 )
144
- } & > /dev/null
145
-
146
- if [[ " $OUT " =~ $REGEX ]]; then
147
- VERSION=" ${BASH_REMATCH[1]} "
148
- if [ " $INS_VERSION " = " $VERSION " ]; then
149
- echo " + $PKGNAME is uptodate ($INS_VERSION )"
150
- else
151
- echo " - $PKGNAME ($VERSION ) is outdated ($INS_VERSION )"
152
- fi
153
- else
154
- echo " - $PKGNAME Unexpected output"
155
- fi
142
+ VERSION=` ${APP} -v 2>&1 | sed -n " s:^${REGEX} .*:\1:p" `
143
+
144
+ if [ -z " $VERSION " ]; then
145
+ echo " - $PKGNAME Unexpected output"
146
+ return 1
147
+ fi
148
+
149
+ if [ " $INS_VERSION " = " $VERSION " ]; then
150
+ echo " + $PKGNAME is uptodate ($INS_VERSION )"
151
+ else
152
+ echo " - $PKGNAME ($VERSION ) is outdated ($INS_VERSION )"
153
+ fi
156
154
fi
157
155
}
158
156
159
157
160
158
161
159
change_title () {
162
- echo -en " \e]0;$1 \a"
160
+ printf " \e]0;$1 \a"
163
161
}
164
162
165
163
show_countdown () {
@@ -170,7 +168,7 @@ show_countdown() {
170
168
return 0
171
169
fi
172
170
173
- echo -n " ${TM} "
171
+ printf " ${TM} "
174
172
change_title " ${TM} "
175
173
sleep 1
176
174
@@ -221,30 +219,31 @@ create_dir() {
221
219
check_dirs () {
222
220
OUTSIDE=" $1 "
223
221
BASE=" $2 "
224
- ORIGINAL=" ` pwd` "
225
-
226
- mkdir -p " ${OUTSIDE} "
227
-
228
- cd " ${OUTSIDE} "
229
- check_error $? " Unable to change directory to ${OUTSIDE} ."
230
- ABS_OUTSIDE=" ` pwd` "
222
+ ORIGINAL=" $PWD "
231
223
232
224
cd " ${BASE} "
233
225
check_error $? " Unable to change directory to ${BASE} ."
234
- ABS_BASE=" ` pwd` "
235
-
226
+ ABS_BASE=" $PWD "
236
227
cd " ${ORIGINAL} "
237
228
check_error $? " Unable to change directory to ${ORIGINAL} ."
238
229
239
- BASE_LEN=" ${# ABS_BASE} "
240
- OUTSIDE_TRIM=" ${ABS_OUTSIDE: 0: ${BASE_LEN} } "
230
+ mkdir -p " ${OUTSIDE} "
231
+ cd " ${OUTSIDE} "
232
+ check_error $? " Unable to change directory to ${OUTSIDE} ."
241
233
242
- if [ " ${OUTSIDE_TRIM} " == " ${ABS_BASE} " ] ; then
234
+ while [ " ${# PWD} " -gt " ${# ABS_BASE} " ]; do
235
+ cd ..
236
+ done
237
+
238
+ if [ " $PWD " = " $ABS_BASE " ]; then
243
239
echo
244
240
echo " CROSS_PREFIX cannot reside within the working directory."
245
241
246
242
exit 5
247
243
fi
244
+
245
+ cd " ${ORIGINAL} "
246
+ check_error $? " Unable to change directory to ${ORIGINAL} ."
248
247
}
249
248
250
249
prepare () {
0 commit comments