diff --git a/qemu/launchers/spice b/qemu/launchers/spice index b4e7af0..da7f3c0 100755 --- a/qemu/launchers/spice +++ b/qemu/launchers/spice @@ -1,12 +1,29 @@ -#!/bin/sh -x -base=$(echo "$QEMUSH_BASE" | cut -d , -f 1) -QEMUSH_BASE=$(echo "$QEMUSH_BASE" | sed "s/^${base}//" | sed 's/^,//') +#!/usr/bin/env perl +use warnings; +use strict; -exec "$base" \ - -vga qxl \ - -chardev spicevmc,id=vdagent,debug=0,name=vdagent \ - -device virtio-serial \ - -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \ - -spice port="$(first-free-port 5900)",addr=::1,disable-ticketing=on \ - -audiodev spice,id=snd0 \ - "$@" +my @launchers_chain = ("kvm"); + +if (defined $ENV{'QEMUSH_BASE'}) { + @launchers_chain = split ",", $ENV{'QEMUSH_BASE'}; +} + +my $base = shift @launchers_chain; +$ENV{'QEMUSH_BASE'} = join ",", @launchers_chain; + +chomp(my $socket_path = `pathof spice`); + +my @command = ( + $base, + "-vga", "qxl", + "-chardev", "spicevmc,id=vdagent,debug=0,name=vdagent", + "-device", "virtio-serial", + "-device", "virtserialport,chardev=vdagent,name=com.redhat.spice.0", + "-spice", "unix=on,addr=${socket_path},disable-ticketing=on", + "-audiodev", "spice,id=snd0", + @ARGV +); + +print "+ exec ", join(" ", @command), "\n"; +exit; +exec @command;