Browse Source

Keep original image

Bob Mottram 9 years ago
parent
commit
c363172933
1 changed files with 50 additions and 35 deletions
  1. 50
    35
      src/freedombone-image

+ 50
- 35
src/freedombone-image View File

@@ -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