Przeglądaj źródła

Keep original image

Bob Mottram 9 lat temu
rodzic
commit
c363172933
1 zmienionych plików z 50 dodań i 35 usunięć
  1. 50
    35
      src/freedombone-image

+ 50
- 35
src/freedombone-image Wyświetl plik

47
 IMAGE_TYPE='beaglebone'
47
 IMAGE_TYPE='beaglebone'
48
 CURR_DIR=$(pwd)
48
 CURR_DIR=$(pwd)
49
 CURR_USER=$(echo $USER)
49
 CURR_USER=$(echo $USER)
50
-BUILD_DIR=~/.tmp_${PROJECT_NAME}_build
50
+TEMPBUILD_DIR=~/.tmp_${PROJECT_NAME}_build
51
 VMDEBOOTSTRAP_REPO=git://git.liw.fi/vmdebootstrap
51
 VMDEBOOTSTRAP_REPO=git://git.liw.fi/vmdebootstrap
52
 VMDEBOOTSTRAP_VERSION=0.8
52
 VMDEBOOTSTRAP_VERSION=0.8
53
 MAKEFILE=${PROJECT_NAME}-image-makefile
53
 MAKEFILE=${PROJECT_NAME}-image-makefile
244
     PASSWORD="$(openssl rand -base64 10 | cut -c1-8)"
244
     PASSWORD="$(openssl rand -base64 10 | cut -c1-8)"
245
 fi
245
 fi
246
 
246
 
247
+# Move any existing images into a build subdirectory
247
 image_types=( xz img sig vdi qcow2 )
248
 image_types=( xz img sig vdi qcow2 )
248
 for im in "${image_types[@]}"
249
 for im in "${image_types[@]}"
249
 do
250
 do
250
     no_of_files=$(ls -afq ${CURR_DIR}/${PROJECT_NAME}*.${im} | wc -l)
251
     no_of_files=$(ls -afq ${CURR_DIR}/${PROJECT_NAME}*.${im} | wc -l)
251
     if (( no_of_files > 0 )); then
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
     fi
266
     fi
254
 done
267
 done
255
 
268
 
269
+# Remove any existing login credentials file
256
 if [ -f ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt ]; then
270
 if [ -f ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt ]; then
257
     rm ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt
271
     rm ${CURR_DIR}/${PROJECT_NAME}_login_credentials.txt
258
 fi
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
 fi
276
 fi
263
-mkdir -p $BUILD_DIR
277
+mkdir -p $TEMPBUILD_DIR
264
 if [ -f /usr/local/bin/$MAKEFILE ]; then
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
 else
280
 else
267
-    cp /usr/bin/$MAKEFILE $BUILD_DIR/Makefile
281
+    cp /usr/bin/$MAKEFILE $TEMPBUILD_DIR/Makefile
268
 fi
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
 if [[ $MINIMAL_INSTALL == "yes" ]]; then
289
 if [[ $MINIMAL_INSTALL == "yes" ]]; then
276
     IMAGE_NAME='min'
290
     IMAGE_NAME='min'
280
     IMAGE_NAME='onion'
294
     IMAGE_NAME='onion'
281
 fi
295
 fi
282
 
296
 
283
-cd $BUILD_DIR
297
+cd $TEMPBUILD_DIR
284
 make $IMAGE_TYPE \
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
 if [ ! "$?" = "0" ]; then
318
 if [ ! "$?" = "0" ]; then
305
     echo $'Build failed'
319
     echo $'Build failed'
306
-    rm -rf $BUILD_DIR
320
+    rm -rf $TEMPBUILD_DIR
307
     exit 1
321
     exit 1
308
 fi
322
 fi
309
 
323
 
319
 imgfiles=(build/${PROJECT_NAME}*.${EXPECTED_EXTENSION})
333
 imgfiles=(build/${PROJECT_NAME}*.${EXPECTED_EXTENSION})
320
 if [ ${#imgfiles[@]} -eq 0 ]; then
334
 if [ ${#imgfiles[@]} -eq 0 ]; then
321
     echo $'Image was not created'
335
     echo $'Image was not created'
322
-    rm -rf $BUILD_DIR
336
+    rm -rf $TEMPBUILD_DIR
323
     exit 2
337
     exit 2
324
 fi
338
 fi
325
 
339
 
326
-# Move images to the current directory
340
+# Move images from temporary directory to the current directory
327
 for im in "${image_types[@]}"
341
 for im in "${image_types[@]}"
328
 do
342
 do
329
     no_of_files=$(ls -afq build/${PROJECT_NAME}*.${im} | wc -l)
343
     no_of_files=$(ls -afq build/${PROJECT_NAME}*.${im} | wc -l)
332
     fi
346
     fi
333
 done
347
 done
334
 
348
 
335
-rm -rf ${BUILD_DIR}
349
+# Remove the temporary directory
350
+rm -rf ${TEMPBUILD_DIR}
336
 
351
 
337
 cd ${CURR_DIR}
352
 cd ${CURR_DIR}
338
 
353
 
380
     echo ''
395
     echo ''
381
     echo $'You can copy the image to a microSD card with:'
396
     echo $'You can copy the image to a microSD card with:'
382
     echo ''
397
     echo ''
383
-    echo "    unxz ${PROJECT_NAME}*.img.xz"
398
+    echo "    unxz -k ${PROJECT_NAME}*.img.xz"
384
     echo "    sudo dd bs=1M if=${PROJECT_NAME}*.img of=/dev/sdX conv=fdatasync"
399
     echo "    sudo dd bs=1M if=${PROJECT_NAME}*.img of=/dev/sdX conv=fdatasync"
385
     echo ''
400
     echo ''
386
 fi
401
 fi