From 608d1100c8a87b3284efa8163ea483e8c11bc311 Mon Sep 17 00:00:00 2001
From: Michael Vorburger <mike@vorburger.ch>
Date: Wed, 30 Dec 2020 04:02:34 +0100
Subject: [PATCH] add -c => -cdrom cloud-init.iso support to run_archiso.sh

Co-authored-by: nl6720 <nl6720@gmail.com>
---
 scripts/run_archiso.sh | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/scripts/run_archiso.sh b/scripts/run_archiso.sh
index b19d280..74f3096 100755
--- a/scripts/run_archiso.sh
+++ b/scripts/run_archiso.sh
@@ -29,6 +29,7 @@ Options:
     -s              use Secure Boot (only relevant when using UEFI)
     -u              set boot type to 'UEFI'
     -v              use VNC display (instead of default SDL)
+    -c [image]      attach an additional optical disc image (e.g. for cloud-init)
 
 Example:
     Run an image using UEFI:
@@ -85,6 +86,13 @@ run_image() {
         )
     fi
 
+    if [[ -n "${oddimage}" ]]; then
+        qemu_options+=(
+            '-device' 'scsi-cd,bus=scsi0.0,drive=cdrom1'
+            '-drive' "id=cdrom1,if=none,format=raw,media=cdrom,readonly=on,file=${oddimage}"
+        )
+    fi
+
     qemu-system-x86_64 \
         -boot order=d,menu=on,reboot-timeout=5000 \
         -m "size=3072,slots=0,maxmem=$((3072*1024*1024))" \
@@ -120,6 +128,7 @@ set_image() {
 }
 
 image=''
+oddimage=''
 accessibility=''
 boot_type='bios'
 mediatype='cdrom'
@@ -130,7 +139,7 @@ working_dir="$(mktemp -dt run_archiso.XXXXXXXXXX)"
 trap cleanup_working_dir EXIT
 
 if (( ${#@} > 0 )); then
-    while getopts 'abdhi:suv' flag; do
+    while getopts 'abc:dhi:suv' flag; do
         case "$flag" in
             a)
                 accessibility='on'
@@ -138,6 +147,9 @@ if (( ${#@} > 0 )); then
             b)
                 boot_type='bios'
                 ;;
+            c)
+                oddimage="$OPTARG"
+                ;;
             d)
                 mediatype='hd'
                 ;;