Merge "Allow for multiple image outputs from raw source"
This commit is contained in:
commit
2b60bea961
@ -45,7 +45,8 @@ function show_options () {
|
|||||||
echo "Options:"
|
echo "Options:"
|
||||||
echo " -a i386|amd64|armhf -- set the architecture of the image(default amd64)"
|
echo " -a i386|amd64|armhf -- set the architecture of the image(default amd64)"
|
||||||
echo " -o imagename -- set the imagename of the output image file(default image)"
|
echo " -o imagename -- set the imagename of the output image file(default image)"
|
||||||
echo " -t qcow2|tar -- set the imagetype of the output image file(default qcow2)"
|
echo " -t qcow2,tar -- set the image types of the output image files (default qcow2)"
|
||||||
|
echo " File types should be comma separated"
|
||||||
echo " -x -- turn on tracing"
|
echo " -x -- turn on tracing"
|
||||||
echo " -u -- uncompressed; do not compress the image - larger but faster"
|
echo " -u -- uncompressed; do not compress the image - larger but faster"
|
||||||
echo " -c -- clear environment before starting work"
|
echo " -c -- clear environment before starting work"
|
||||||
@ -85,6 +86,7 @@ function show_options () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
INSTALL_PACKAGES=""
|
INSTALL_PACKAGES=""
|
||||||
|
IMAGE_TYPES=("qcow2")
|
||||||
COMPRESS_IMAGE="true"
|
COMPRESS_IMAGE="true"
|
||||||
DIB_ROOT_LABEL=""
|
DIB_ROOT_LABEL=""
|
||||||
TEMP=`getopt -o a:ho:t:xucnp: -l no-tmpfs,offline,help,min-tmpfs:,image-size:,image-cache:,max-online-resize:,qemu-img-options:,root-label: -n $SCRIPTNAME -- "$@"`
|
TEMP=`getopt -o a:ho:t:xucnp: -l no-tmpfs,offline,help,min-tmpfs:,image-size:,image-cache:,max-online-resize:,qemu-img-options:,root-label: -n $SCRIPTNAME -- "$@"`
|
||||||
@ -97,7 +99,7 @@ while true ; do
|
|||||||
case "$1" in
|
case "$1" in
|
||||||
-a) export ARCH=$2; shift 2 ;;
|
-a) export ARCH=$2; shift 2 ;;
|
||||||
-o) export IMAGE_NAME=$2; shift 2 ;;
|
-o) export IMAGE_NAME=$2; shift 2 ;;
|
||||||
-t) export IMAGE_TYPE=$2; shift 2 ;;
|
-t) IFS="," read -a IMAGE_TYPES <<< "$2"; export IMAGE_TYPES ; shift 2 ;;
|
||||||
-h|--help) show_options; exit 0;;
|
-h|--help) show_options; exit 0;;
|
||||||
-x) shift; set -x;;
|
-x) shift; set -x;;
|
||||||
-u) shift; export COMPRESS_IMAGE="";;
|
-u) shift; export COMPRESS_IMAGE="";;
|
||||||
@ -137,7 +139,10 @@ fi
|
|||||||
|
|
||||||
arg_to_elements "$@"
|
arg_to_elements "$@"
|
||||||
|
|
||||||
export IMAGE_NAME=${IMAGE_NAME%%\.${IMAGE_TYPE}}
|
if [ "${#IMAGE_TYPES[@]}" = "1" ]; then
|
||||||
|
export IMAGE_NAME=${IMAGE_NAME%%\.${IMAGE_TYPES[0]}}
|
||||||
|
fi
|
||||||
|
|
||||||
# FS_TYPE isn't available until after we source img-defaults
|
# FS_TYPE isn't available until after we source img-defaults
|
||||||
if [ -z "$DIB_ROOT_LABEL" ]; then
|
if [ -z "$DIB_ROOT_LABEL" ]; then
|
||||||
# NOTE(bnemec): XFS has a limit of 12 characters for filesystem labels
|
# NOTE(bnemec): XFS has a limit of 12 characters for filesystem labels
|
||||||
@ -206,18 +211,27 @@ mount_proc_dev_sys
|
|||||||
run_d_in_target finalise
|
run_d_in_target finalise
|
||||||
finalise_base
|
finalise_base
|
||||||
|
|
||||||
if [ "$IMAGE_TYPE" == "tar" ]; then
|
for X in ${!IMAGE_TYPES[@]} ; do
|
||||||
sudo tar -C ${TMP_BUILD_DIR}/mnt -cf $IMAGE_NAME.tar --exclude ./sys \
|
if [ "${IMAGE_TYPES[$X]}" == "tar" ]; then
|
||||||
--exclude ./proc --xattrs --xattrs-include=\* .
|
sudo tar -C ${TMP_BUILD_DIR}/mnt -cf $IMAGE_NAME.tar --exclude ./sys \
|
||||||
sudo chown $USER: $IMAGE_NAME.tar
|
--exclude ./proc --xattrs --xattrs-include=\* .
|
||||||
fi
|
sudo chown $USER: $IMAGE_NAME.tar
|
||||||
|
unset IMAGE_TYPES[$X]
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
unmount_image
|
unmount_image
|
||||||
|
|
||||||
if [ "$IS_RAMDISK" == "0" -a "$IMAGE_TYPE" != "tar" ]; then
|
if [ "$IS_RAMDISK" == "0" ]; then
|
||||||
compress_and_save_image $IMAGE_NAME.$IMAGE_TYPE
|
for IMAGE_TYPE in ${IMAGE_TYPES[@]} ; do
|
||||||
|
compress_and_save_image $IMAGE_NAME.$IMAGE_TYPE
|
||||||
|
done
|
||||||
|
rm $TMP_IMAGE_PATH
|
||||||
|
cleanup_dirs
|
||||||
else
|
else
|
||||||
# This is a ramdisk build, we have already extracted the kernel and ramdisk
|
# This is a ramdisk build, we have already extracted the kernel and ramdisk
|
||||||
# by this point.
|
# by this point.
|
||||||
rm $TMP_IMAGE_PATH
|
rm $TMP_IMAGE_PATH
|
||||||
fi
|
fi
|
||||||
|
# All done!
|
||||||
|
trap EXIT
|
||||||
|
@ -39,5 +39,8 @@ populate_udev
|
|||||||
SCRIPT_HOME=/tmp/in_target.d/bin TMP_HOOKS_PATH=/tmp/in_target.d run_d ramdisk-install
|
SCRIPT_HOME=/tmp/in_target.d/bin TMP_HOOKS_PATH=/tmp/in_target.d run_d ramdisk-install
|
||||||
finalise_image
|
finalise_image
|
||||||
save_image /tmp/ramdisk
|
save_image /tmp/ramdisk
|
||||||
|
# In the past save_image did this for us. If EXIT handler is not
|
||||||
|
# reset ramdisk image builds fail.
|
||||||
|
trap EXIT
|
||||||
cp /boot/vmlinuz-${KERNEL_VERSION} /tmp/kernel
|
cp /boot/vmlinuz-${KERNEL_VERSION} /tmp/kernel
|
||||||
chmod o+r /tmp/kernel
|
chmod o+r /tmp/kernel
|
||||||
|
@ -39,6 +39,7 @@ function mk_build_dir () {
|
|||||||
trap trap_cleanup EXIT
|
trap trap_cleanup EXIT
|
||||||
echo Building in $TMP_BUILD_DIR
|
echo Building in $TMP_BUILD_DIR
|
||||||
export TMP_IMAGE_PATH=$TMP_IMAGE_DIR/image.raw
|
export TMP_IMAGE_PATH=$TMP_IMAGE_DIR/image.raw
|
||||||
|
export OUT_IMAGE_PATH=$TMP_IMAGE_PATH
|
||||||
export TMP_HOOKS_PATH=$TMP_BUILD_DIR/hooks
|
export TMP_HOOKS_PATH=$TMP_BUILD_DIR/hooks
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,10 +50,7 @@ function finish_image () {
|
|||||||
mv "$1" "$old_image"
|
mv "$1" "$old_image"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mv $TMP_IMAGE_PATH $1
|
mv $OUT_IMAGE_PATH $1
|
||||||
cleanup_dirs
|
|
||||||
# All done!
|
|
||||||
trap EXIT
|
|
||||||
echo "Image file $1 created..."
|
echo "Image file $1 created..."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,9 +117,8 @@ function compress_and_save_image () {
|
|||||||
fi
|
fi
|
||||||
echo "Converting image using qemu-img convert"
|
echo "Converting image using qemu-img convert"
|
||||||
qemu-img convert ${COMPRESS_IMAGE:+-c} -f raw $TMP_IMAGE_PATH -O $IMAGE_TYPE $EXTRA_OPTIONS $1-new
|
qemu-img convert ${COMPRESS_IMAGE:+-c} -f raw $TMP_IMAGE_PATH -O $IMAGE_TYPE $EXTRA_OPTIONS $1-new
|
||||||
rm $TMP_IMAGE_PATH
|
|
||||||
|
|
||||||
TMP_IMAGE_PATH=$1-new
|
OUT_IMAGE_PATH=$1-new
|
||||||
finish_image $1
|
finish_image $1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user