From 97c5d837abde6eaeaaeb58e7bd6ab728aeeac135 Mon Sep 17 00:00:00 2001 From: Muminul Islam Date: Mon, 9 Feb 2026 18:39:06 -0800 Subject: [PATCH] scripts: allow cloud-init script to accept a custom output file When running manual tests locally, it is sometimes necessary to generate a cloud-init file at a custom path instead of defaulting to /tmp. This is useful for developers and higher-level management layers where files in /tmp may be cleaned up automatically. Signed-off-by: Muminul Islam --- scripts/create-cloud-init.sh | 39 +++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/scripts/create-cloud-init.sh b/scripts/create-cloud-init.sh index 6ff418fe9..5724c34c5 100755 --- a/scripts/create-cloud-init.sh +++ b/scripts/create-cloud-init.sh @@ -1,8 +1,37 @@ #!/usr/bin/env bash set -ex -rm -f /tmp/ubuntu-cloudinit.img -mkdosfs -n CIDATA -C /tmp/ubuntu-cloudinit.img 8192 -mcopy -oi /tmp/ubuntu-cloudinit.img -s test_data/cloud-init/ubuntu/local/user-data :: -mcopy -oi /tmp/ubuntu-cloudinit.img -s test_data/cloud-init/ubuntu/local/meta-data :: -mcopy -oi /tmp/ubuntu-cloudinit.img -s test_data/cloud-init/ubuntu/local/network-config :: +usage() { + echo "Usage: $0 [-o|--output ]" + echo "" + echo "Options:" + echo " -o, --output Specify output file path (default: /tmp/ubuntu-cloudinit.img)" + echo " -h, --help Show this help message" +} + +OUTPUT_FILE=/tmp/ubuntu-cloudinit.img + +while [ "$1" != "" ]; do + echo "Processing argument: $1" + case $1 in + -o | --output) + OUTPUT_FILE=$2 + shift # Remove argument (-o) name from `$@` + shift # Remove argument value (file path) from `$@` + ;; + -h | --help) + usage # run usage function on help + exit 0 + ;; + *) + usage # run usage function if wrong argument provided + exit 1 + ;; + esac +done + +rm -f "$OUTPUT_FILE" +mkdosfs -n CIDATA -C "$OUTPUT_FILE" 8192 +mcopy -oi "$OUTPUT_FILE" -s test_data/cloud-init/ubuntu/local/user-data :: +mcopy -oi "$OUTPUT_FILE" -s test_data/cloud-init/ubuntu/local/meta-data :: +mcopy -oi "$OUTPUT_FILE" -s test_data/cloud-init/ubuntu/local/network-config ::