diff --git a/qemu/launchers/9p b/qemu/launchers/9p index 9417878..c5078d8 100755 --- a/qemu/launchers/9p +++ b/qemu/launchers/9p @@ -1,11 +1,22 @@ -#!/usr/bin/env sh -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; -set -- "$base" \ - -fsdev local,security_model=passthrough,id=fsdev0,path="${HOME}/shared/${QEMUSH_NAME}" \ - -device virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=shared \ - "$@" +my @launchers_chain = ("kvm"); -set -x -exec "$@" +if (defined $ENV{'QEMUSH_BASE'}) { + @launchers_chain = split ",", $ENV{'QEMUSH_BASE'}; +} + +my $base = shift @launchers_chain; +$ENV{'QEMUSH_BASE'} = join ",", @launchers_chain; + +my @command = ( + $base, + "-fsdev", "local,security_model=passthrough,id=fsdev0,path=" . $ENV{'HOME'} . "/shared/" . $ENV{'QEMUSH_NAME'}, + "-device", "virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=shared", + @ARGV +); + +print "+ exec ", join(" ", @command), "\n"; +exec @command;