scripts/virtual-machines/qemu-setup

80 lines
1.3 KiB
Fish
Executable File

#!/usr/bin/env fish
# Args
argparse \
--name "vm-qemu" \
--min-args 1 \
--max-args 1 \
'V/version=' \
'i/install' \
-- \
$argv
or exit 1
set cfg $argv
# Config
set _vm_media "/mnt/s/osmedia"
source $_agw_dir_rc/virtual-machines/$cfg
# Devices
test "$_vga"
and set vga $_vga
or set vga vmware
test "$_soundhw"
and set soundhw $_soundhw
or set soundhw hda
for dev in $_devs
set -a _args --device $dev
end
# Machine
test "$_cpu"
and set cpu $_cpu
or set cpu host
if test "$_arch" = "i386" || test "$_arch" = "x86_64"
set -p _args \
--machine accel=kvm \
--usb
end
# Versioning
test "$_flag_version"
and set ver $_flag_version
or set ver $_ver
# Disk Media
set image "/mnt/s/vm/$cfg/image$ver"
set boot_order c
# Install Media
set install (string replace "_ver_" "$ver" "$_install")
set boot (string replace "_ver_" "$ver" "$_boot")
if test "$_flag_install"
set boot_order d
set -p _args --drive file="$install",media=cdrom,readonly
if test "$boot"
set boot_order a
set -p _args --drive file="$boot",format=raw,if=floppy,readonly
end
end
# Run!
env QEMU_AUDIO_DRV=pa "qemu-system-$_arch" \
--boot order="$boot_order" \
--cpu "$cpu" \
--display sdl,gl=on \
--drive file="$image",format=qcow2,media=disk \
--monitor stdio \
--soundhw $soundhw \
--vga $vga \
-m "$_mem" \
$_args
## EOF