updated git and svn scripts
[xrzperl.git] / r-qemu
blob16bdb95c472ade83073e86d42eac0291d0736398
1 #!/usr/bin/perl -w
2 #!/bin/sh
3 ###APPNAME: r-qemu
4 ###APPAUTHOR: xiaoranzzz
5 ###APPDATE: Wed Oct 3 09:58:14 2007
6 ###APPVER: 0.1
7 ###APPDESC: qemu with default arguments
8 ###APPUSAGE:
9 ###APPEXAMPLE: r-qemu -hda boot.raw
10 ###APPOPTION: ?:see qemu --help
11 use strict;
12 $ARGV[0]="-h" unless(@ARGV);
13 foreach(@ARGV){
14 exit(system("plhelp",$0,@ARGV)) if($_ eq "-h" || $_ eq "--help");
16 #Parse options
17 sub getOpt(@) {
18 my $flag=0;
19 my $last="";
20 my %result;
21 foreach(@_) {
22 if(m/^-/) {
23 if($flag) {
24 $result{$last}=$last;
26 else {
27 push @{$result{noname}},$last if($last);
29 $flag=1;
30 $last=$_;
32 else {
33 if($flag) {
34 $result{$last}=$_;
36 else {
37 push @{$result{noname}},$_;
39 $flag=0;
40 $last="";
43 if($flag) {
44 $result{$last}=$last;
46 return %result;
49 my %OPTS=getOpt(@ARGV);
50 my @noname=();
51 @noname=@{$OPTS{noname}} if($OPTS{noname});
53 foreach my $arg (@noname) {
54 foreach(qw/-hda -hdb -hdc -hdd -cdrom -fda -fdb/) {
55 if(!$OPTS{$_}) {
56 $OPTS{$_}=$arg;
57 last;
61 $OPTS{noname}=0;
63 if(!$OPTS{-boot}) {
64 foreach(["-fda","a"],["-hda","c"],["-cdrom","d"]) {
65 if(defined($OPTS{@$_[0]})) {
66 $OPTS{-boot}=@$_[1];
67 last;
72 my @args;
73 push @args,qw'-localtime -soundhw sb16';# -smp 1 -m 320 -monitor stdio';# -soundhw sb16';
74 #push @args,qw'-hdd /myplace/emuos/datapool.raw' if(-f "/myplace/emuos/datapool.raw");
75 my $emulator = 'qemu';
76 foreach(sort keys %OPTS) {
77 next if($_ eq "noname");
78 if($_ eq '-kvm') {
79 $emulator='kvm';
81 elsif($OPTS{$_} eq $_) {
82 push @args,$_;
84 else {
85 push @args,$_;
86 push @args,$OPTS{$_};
89 system("printarg", "%-10s :\t%s\n",@args);
90 #print("qemu ",join(" ",@args),"\n");
91 $ENV{QEMU_AUDIO_DRV}="alsa";
92 exec($emulator,@args);