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