|
|
|
#!/usr/bin/env fish
|
|
|
|
|
|
|
|
function vm-qemu -d "Frontend to QEMU"
|
|
|
|
# Args
|
|
|
|
argparse \
|
|
|
|
--name "vm-qemu" \
|
|
|
|
--min-args 1 \
|
|
|
|
'V/version=' \
|
|
|
|
'i/install' \
|
|
|
|
-- \
|
|
|
|
$argv
|
|
|
|
or exit 1
|
|
|
|
|
|
|
|
set cfg $argv[1]
|
|
|
|
set -e argv[1]
|
|
|
|
|
|
|
|
# Config
|
|
|
|
source $_agw_dir_rc/virtual-machines/QEMU/$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
|
|
|
|
|
|
|
|
switch $soundhw
|
|
|
|
case "hda"
|
|
|
|
set -a _args --device intel-hda --device hda-duplex
|
|
|
|
case "ac97"
|
|
|
|
set -a _args --device AC97
|
|
|
|
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 "/media/store/vm/$cfg/image$ver"
|
|
|
|
set boot_order c
|
|
|
|
|
|
|
|
# Install Media
|
|
|
|
set media "/media/store/osmedia"
|
|
|
|
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="$media/$install",media=cdrom,readonly
|
|
|
|
|
|
|
|
if test "$boot"
|
|
|
|
set boot_order a
|
|
|
|
set -p _args --drive file="$media/$boot",format=raw,if=floppy,readonly
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# Run!
|
|
|
|
set -a _args $argv
|
|
|
|
|
|
|
|
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 \
|
|
|
|
--vga "$vga" \
|
|
|
|
-m "$_mem" \
|
|
|
|
$_args
|
|
|
|
end
|
|
|
|
|
|
|
|
complete -c vm-qemu -xa "(ls $_agw_dir_rc/virtual-machines/QEMU)"
|
|
|
|
|
|
|
|
## EOF
|