Index: src/scripts/image_to_usb.sh |
diff --git a/src/scripts/image_to_usb.sh b/src/scripts/image_to_usb.sh |
index f8248364365f13c4f0a367c19f4b145d1708da51..9abe853cb454885dcc2541a6f0169a2c97205694 100755 |
--- a/src/scripts/image_to_usb.sh |
+++ b/src/scripts/image_to_usb.sh |
@@ -21,10 +21,12 @@ then |
# images. |
DEFAULT_TO="${DEFAULT_FROM}/usb.img" |
DEFAULT_TO_HELP="Destination file for USB image." |
+ AUTOTEST_SRC=/usr/local/autotest |
else |
# Outside the chroot, so output to the default device for a usb key. |
DEFAULT_TO="/dev/sdb" |
DEFAULT_TO_HELP="Destination device for USB keyfob." |
+ AUTOTEST_SRC=${DEFAULT_CHROOT_DIR}/usr/local/autotest |
fi |
# Flags |
@@ -32,6 +34,8 @@ DEFINE_string from "$DEFAULT_FROM" \ |
"Directory containing rootfs.image and mbr.image" |
DEFINE_string to "$DEFAULT_TO" "$DEFAULT_TO_HELP" |
DEFINE_boolean yes $FLAGS_FALSE "Answer yes to all prompts" "y" |
+DEFINE_boolean install_autotest $FLAGS_FALSE \ |
+ "Whether to install autotest to the stateful partition." |
# Parse command line |
FLAGS "$@" || exit 1 |
@@ -49,6 +53,29 @@ function do_cleanup { |
sudo losetup -d "$LOOP_DEV" |
} |
+STATEFUL_DIR=${FLAGS_from}/stateful_partition |
+mkdir -p "${STATEFUL_DIR}" |
+ |
+function install_autotest { |
+ if [ -d ${AUTOTEST_SRC} ] |
+ then |
+ echo -ne "Install autotest into stateful partition..." |
+ local autotest_client="/home/autotest-client" |
+ sudo mkdir -p "${STATEFUL_DIR}${autotest_client}" |
+ sudo cp -fpru ${AUTOTEST_SRC}/client/* \ |
+ "${STATEFUL_DIR}${autotest_client}" |
+ sudo chmod 755 "${STATEFUL_DIR}${autotest_client}" |
+ sudo chown -R 1000:1000 "${STATEFUL_DIR}${autotest_client}" |
+ echo "Done." |
+ sudo umount "${STATEFUL_DIR}" |
+ else |
+ echo "/usr/local/autotest under ${DEFAULT_CHROOT_DIR} is not installed." |
+ echo "Please call make_autotest.sh inside chroot first." |
+ sudo umount "${STATEFUL_DIR}" |
+ exit -1 |
+ fi |
+} |
+ |
# Copy MBR and rootfs to output image |
if [ -b "$FLAGS_to" ] |
then |
@@ -109,6 +136,11 @@ then |
echo "Creating stateful partition..." |
sudo losetup -o 512 "$LOOP_DEV" "$FLAGS_to" |
sudo mkfs.ext3 -F -b 4096 -L C-STATE "$LOOP_DEV" $(( $PART_SIZE / 4096 )) |
+ if [ $FLAGS_install_autotest -eq $FLAGS_TRUE ] |
+ then |
+ sudo mount "${LOOP_DEV}" "${STATEFUL_DIR}" |
+ install_autotest |
+ fi |
sync |
sudo losetup -d "$LOOP_DEV" |
sync |
@@ -130,6 +162,13 @@ else |
seek=$(($PART_SIZE - 1)) |
mkfs.ext3 -F -L C-STATE "${FLAGS_from}/stateful_partition.image" |
+ if [ $FLAGS_install_autotest -eq $FLAGS_TRUE ] |
+ then |
+ sudo mount -o loop "${FLAGS_from}/stateful_partition.image" \ |
+ "${STATEFUL_DIR}" |
+ install_autotest |
+ fi |
+ |
# Create a sparse output file |
dd if=/dev/zero of="${FLAGS_to}" bs=1 count=1 \ |
seek=$(( ($PART_SIZE * 2) + 512 - 1)) |