|
@@ -47,7 +47,7 @@ GENERIC_IMAGE_PASSWORD='freedombone'
|
47
|
47
|
IMAGE_TYPE='beaglebone'
|
48
|
48
|
CURR_DIR=$(pwd)
|
49
|
49
|
CURR_USER=$(echo $USER)
|
50
|
|
-BUILD_DIR=~/.tmp_${PROJECT_NAME}_build
|
|
50
|
+TEMPBUILD_DIR=~/.tmp_${PROJECT_NAME}_build
|
51
|
51
|
VMDEBOOTSTRAP_REPO=git://git.liw.fi/vmdebootstrap
|
52
|
52
|
VMDEBOOTSTRAP_VERSION=0.8
|
53
|
53
|
MAKEFILE=${PROJECT_NAME}-image-makefile
|
|
@@ -244,33 +244,47 @@ if [ ! $PASSWORD ]; then
|
244
|
244
|
PASSWORD="$(openssl rand -base64 10 | cut -c1-8)"
|
245
|
245
|
fi
|
246
|
246
|
|
|
247
|
+# Move any existing images into a build subdirectory
|
247
|
248
|
image_types=( xz img sig vdi qcow2 )
|
248
|
249
|
for im in "${image_types[@]}"
|
249
|
250
|
do
|
250
|
251
|
no_of_files=$(ls -afq ${CURR_DIR}/${PROJECT_NAME}*.${im} | wc -l)
|
251
|
252
|
if (( no_of_files > 0 )); then
|
252
|
|
- rm ${CURR_DIR}/${PROJECT_NAME}*.${im}
|
|
253
|
+ if [ ! -d ${CURR_DIR}/build ]; then
|
|
254
|
+ mkdir ${CURR_DIR}/build
|
|
255
|
+ fi
|
|
256
|
+ mv -f ${CURR_DIR}/${PROJECT_NAME}*.${im} ${CURR_DIR}/build
|
|
257
|
+ fi
|
|
258
|
+done
|
|
259
|
+
|
|
260
|
+# Delete anything which didn't move
|
|
261
|
+for im in "${image_types[@]}"
|
|
262
|
+do
|
|
263
|
+ no_of_files=$(ls -afq ${CURR_DIR}/${PROJECT_NAME}*.${im} | wc -l)
|
|
264
|
+ if (( no_of_files > 0 )); then
|
|
265
|
+ rm -f ${CURR_DIR}/${PROJECT_NAME}*.${im}
|
253
|
266
|
fi
|
254
|
267
|
done
|
255
|
268
|
|
|
269
|
+# Remove any existing login credentials file
|
256
|
270
|
if [ -f ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt ]; then
|
257
|
271
|
rm ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt
|
258
|
272
|
fi
|
259
|
273
|
|
260
|
|
-if [ -d $BUILD_DIR ]; then
|
261
|
|
- rm -rf $BUILD_DIR
|
|
274
|
+if [ -d $TEMPBUILD_DIR ]; then
|
|
275
|
+ rm -rf $TEMPBUILD_DIR
|
262
|
276
|
fi
|
263
|
|
-mkdir -p $BUILD_DIR
|
|
277
|
+mkdir -p $TEMPBUILD_DIR
|
264
|
278
|
if [ -f /usr/local/bin/$MAKEFILE ]; then
|
265
|
|
- cp /usr/local/bin/$MAKEFILE $BUILD_DIR/Makefile
|
|
279
|
+ cp /usr/local/bin/$MAKEFILE $TEMPBUILD_DIR/Makefile
|
266
|
280
|
else
|
267
|
|
- cp /usr/bin/$MAKEFILE $BUILD_DIR/Makefile
|
|
281
|
+ cp /usr/bin/$MAKEFILE $TEMPBUILD_DIR/Makefile
|
268
|
282
|
fi
|
269
|
283
|
|
270
|
|
-cp -r /etc/${PROJECT_NAME}/* $BUILD_DIR
|
271
|
|
-rm -rf $BUILD_DIR/vendor
|
272
|
|
-chown -R $CURR_USER:$CURR_USER $BUILD_DIR
|
273
|
|
-cd $BUILD_DIR
|
|
284
|
+cp -r /etc/${PROJECT_NAME}/* $TEMPBUILD_DIR
|
|
285
|
+rm -rf $TEMPBUILD_DIR/vendor
|
|
286
|
+chown -R $CURR_USER:$CURR_USER $TEMPBUILD_DIR
|
|
287
|
+cd $TEMPBUILD_DIR
|
274
|
288
|
|
275
|
289
|
if [[ $MINIMAL_INSTALL == "yes" ]]; then
|
276
|
290
|
IMAGE_NAME='min'
|
|
@@ -280,30 +294,30 @@ if [[ $ONION_ONLY != "no" ]]; then
|
280
|
294
|
IMAGE_NAME='onion'
|
281
|
295
|
fi
|
282
|
296
|
|
283
|
|
-cd $BUILD_DIR
|
|
297
|
+cd $TEMPBUILD_DIR
|
284
|
298
|
make $IMAGE_TYPE \
|
285
|
|
- USERNAME="$USERNAME" \
|
286
|
|
- PASSWORD="$PASSWORD" \
|
287
|
|
- ROUTER_IP_ADDRESS="$ROUTER_IP_ADDRESS" \
|
288
|
|
- BOX_IP_ADDRESS="$BOX_IP_ADDRESS" \
|
289
|
|
- NAMESERVER1="$NAMESERVER1" \
|
290
|
|
- NAMESERVER2="$NAMESERVER2" \
|
291
|
|
- PROJECT_NAME="$PROJECT_NAME" \
|
292
|
|
- CONFIG_FILENAME="$CONFIG_FILENAME" \
|
293
|
|
- IMAGE_SIZE="$IMAGE_SIZE" \
|
294
|
|
- SSH_PUBKEY="$SSH_PUBKEY" \
|
295
|
|
- GENERIC_IMAGE="$GENERIC_IMAGE" \
|
296
|
|
- MINIMAL_INSTALL="$MINIMAL_INSTALL" \
|
297
|
|
- SSH_PORT="$SSH_PORT" \
|
298
|
|
- ONION_ONLY="$ONION_ONLY" \
|
299
|
|
- IMAGE_NAME="$IMAGE_NAME" \
|
300
|
|
- PROJECT_REPO="$PROJECT_REPO" \
|
301
|
|
- MIRROR="$MIRROR" \
|
302
|
|
- BUILD_MIRROR="$MIRROR"
|
|
299
|
+ USERNAME="$USERNAME" \
|
|
300
|
+ PASSWORD="$PASSWORD" \
|
|
301
|
+ ROUTER_IP_ADDRESS="$ROUTER_IP_ADDRESS" \
|
|
302
|
+ BOX_IP_ADDRESS="$BOX_IP_ADDRESS" \
|
|
303
|
+ NAMESERVER1="$NAMESERVER1" \
|
|
304
|
+ NAMESERVER2="$NAMESERVER2" \
|
|
305
|
+ PROJECT_NAME="$PROJECT_NAME" \
|
|
306
|
+ CONFIG_FILENAME="$CONFIG_FILENAME" \
|
|
307
|
+ IMAGE_SIZE="$IMAGE_SIZE" \
|
|
308
|
+ SSH_PUBKEY="$SSH_PUBKEY" \
|
|
309
|
+ GENERIC_IMAGE="$GENERIC_IMAGE" \
|
|
310
|
+ MINIMAL_INSTALL="$MINIMAL_INSTALL" \
|
|
311
|
+ SSH_PORT="$SSH_PORT" \
|
|
312
|
+ ONION_ONLY="$ONION_ONLY" \
|
|
313
|
+ IMAGE_NAME="$IMAGE_NAME" \
|
|
314
|
+ PROJECT_REPO="$PROJECT_REPO" \
|
|
315
|
+ MIRROR="$MIRROR" \
|
|
316
|
+ BUILD_MIRROR="$MIRROR"
|
303
|
317
|
|
304
|
318
|
if [ ! "$?" = "0" ]; then
|
305
|
319
|
echo $'Build failed'
|
306
|
|
- rm -rf $BUILD_DIR
|
|
320
|
+ rm -rf $TEMPBUILD_DIR
|
307
|
321
|
exit 1
|
308
|
322
|
fi
|
309
|
323
|
|
|
@@ -319,11 +333,11 @@ shopt -s nullglob
|
319
|
333
|
imgfiles=(build/${PROJECT_NAME}*.${EXPECTED_EXTENSION})
|
320
|
334
|
if [ ${#imgfiles[@]} -eq 0 ]; then
|
321
|
335
|
echo $'Image was not created'
|
322
|
|
- rm -rf $BUILD_DIR
|
|
336
|
+ rm -rf $TEMPBUILD_DIR
|
323
|
337
|
exit 2
|
324
|
338
|
fi
|
325
|
339
|
|
326
|
|
-# Move images to the current directory
|
|
340
|
+# Move images from temporary directory to the current directory
|
327
|
341
|
for im in "${image_types[@]}"
|
328
|
342
|
do
|
329
|
343
|
no_of_files=$(ls -afq build/${PROJECT_NAME}*.${im} | wc -l)
|
|
@@ -332,7 +346,8 @@ do
|
332
|
346
|
fi
|
333
|
347
|
done
|
334
|
348
|
|
335
|
|
-rm -rf ${BUILD_DIR}
|
|
349
|
+# Remove the temporary directory
|
|
350
|
+rm -rf ${TEMPBUILD_DIR}
|
336
|
351
|
|
337
|
352
|
cd ${CURR_DIR}
|
338
|
353
|
|
|
@@ -380,7 +395,7 @@ if [[ $IMAGE_TYPE != "virtualbox"* && $IMAGE_TYPE != "qemu"* ]]; then
|
380
|
395
|
echo ''
|
381
|
396
|
echo $'You can copy the image to a microSD card with:'
|
382
|
397
|
echo ''
|
383
|
|
- echo " unxz ${PROJECT_NAME}*.img.xz"
|
|
398
|
+ echo " unxz -k ${PROJECT_NAME}*.img.xz"
|
384
|
399
|
echo " sudo dd bs=1M if=${PROJECT_NAME}*.img of=/dev/sdX conv=fdatasync"
|
385
|
400
|
echo ''
|
386
|
401
|
fi
|