diff options
author | tlh20@labyrinth.cl.cam.ac.uk <tlh20@labyrinth.cl.cam.ac.uk> | 2003-09-18 11:27:03 +0000 |
---|---|---|
committer | tlh20@labyrinth.cl.cam.ac.uk <tlh20@labyrinth.cl.cam.ac.uk> | 2003-09-18 11:27:03 +0000 |
commit | a32abaaab996e37ebfb5756a93578558e051f2f8 (patch) | |
tree | 15b88c2f2efb2af3dcbc1989b25a649492f27374 /tools | |
parent | 879204f28cf4a3a5048d60603fd9faf90488a200 (diff) | |
download | xen-a32abaaab996e37ebfb5756a93578558e051f2f8.tar.gz xen-a32abaaab996e37ebfb5756a93578558e051f2f8.tar.bz2 xen-a32abaaab996e37ebfb5756a93578558e051f2f8.zip |
bitkeeper revision 1.433 (3f699687J_HgoywKoa1018zIpJGRrQ)
CommandDomainNew.java, ParseDomainNew.java, Main.java, CommandParser.java:
Expand + in -a and -t, allow spaces
Diffstat (limited to 'tools')
4 files changed, 29 insertions, 8 deletions
diff --git a/tools/control/src/org/xenoserver/cmdline/CommandParser.java b/tools/control/src/org/xenoserver/cmdline/CommandParser.java index 1f558c3605..af8adfe268 100644 --- a/tools/control/src/org/xenoserver/cmdline/CommandParser.java +++ b/tools/control/src/org/xenoserver/cmdline/CommandParser.java @@ -84,7 +84,7 @@ public abstract class CommandParser { */ public int getIntParameter(List args, char key, int def) { String r = getParameter(args, key); - return (r == null) ? def : (Integer.parseInt(r)); + return (r == null) ? def : (Integer.parseInt(r.trim())); } /** diff --git a/tools/control/src/org/xenoserver/cmdline/Main.java b/tools/control/src/org/xenoserver/cmdline/Main.java index fe7c6a2c25..cada1a10b8 100644 --- a/tools/control/src/org/xenoserver/cmdline/Main.java +++ b/tools/control/src/org/xenoserver/cmdline/Main.java @@ -64,8 +64,27 @@ public class Main { Defaults d = new Defaults(); int ec = -1; LinkedList arglist = new LinkedList(); + boolean seen_arg = false; + String collected = null; for ( int i=0; i<args.length; i++ ) { - arglist.add( args[i] ); + if (!(args[i].startsWith("-"))) { + if (seen_arg) { + collected += " " + args[i]; + } else { + arglist.add(args[i]); + } + } + if (args[i].startsWith("-")) { + if (collected != null) { + arglist.add ( collected ); + collected = null; + } + collected = args[i]; + seen_arg = true; + } + } + if (collected != null) { + arglist.add( collected ); } try { diff --git a/tools/control/src/org/xenoserver/cmdline/ParseDomainNew.java b/tools/control/src/org/xenoserver/cmdline/ParseDomainNew.java index 9a35387542..132c9eff3b 100644 --- a/tools/control/src/org/xenoserver/cmdline/ParseDomainNew.java +++ b/tools/control/src/org/xenoserver/cmdline/ParseDomainNew.java @@ -17,7 +17,7 @@ public class ParseDomainNew extends CommandParser { String image = getStringParameter(args, 'i', d.domainImage); String initrd = getStringParameter(args, 'r', d.domainInitRD); int vifs = getIntParameter(args, 'v', d.domainVIFs); - String bargs = getStringParameter(args, 'a', d.args) + " "; + String bargs = getStringParameter(args, 'a', d.args); String root_dev = getStringParameter(args, 'd', d.rootDevice); String root_args = getStringParameter(args, 't', d.rootArgs); String usr_dev = getStringParameter(args, 'u', d.usrDevice); diff --git a/tools/control/src/org/xenoserver/control/CommandDomainNew.java b/tools/control/src/org/xenoserver/control/CommandDomainNew.java index 1060df9c59..a5d69c3d4a 100644 --- a/tools/control/src/org/xenoserver/control/CommandDomainNew.java +++ b/tools/control/src/org/xenoserver/control/CommandDomainNew.java @@ -212,6 +212,7 @@ public class CommandDomainNew extends Command { } /* Set up boot parameters to pass to xi_build. */ + bargs = StringPattern.parse(bargs).resolve(domain_id) + " "; if (root_dev.equals("/dev/nfs")) { if (vifs == 0) { throw new CommandFailedException("Cannot use NFS root without VIFs configured"); @@ -224,7 +225,7 @@ public class CommandDomainNew extends Command { } bargs = (bargs - + " root=/dev/nfs " + root_args + " " + + " root=/dev/nfs " + StringPattern.parse(root_args).resolve(domain_id) + " " + "nfsroot=" + StringPattern.parse(nfs_root_path).resolve( domain_id) @@ -234,7 +235,7 @@ public class CommandDomainNew extends Command { (bargs + " root=" + StringPattern.parse(root_dev).resolve(domain_id) - + " " + root_args + " "); + + " " + StringPattern.parse(root_args).resolve(domain_id) + " "); } @@ -258,19 +259,19 @@ public class CommandDomainNew extends Command { ("ip=" + domain_ip + ":" - + ((nw_nfs_server == null) + + ((nw_nfs_server == null || nw_nfs_server.equals("")) ? "" : (InetAddressPattern .parse(nw_nfs_server) .resolve(domain_id))) + ":" - + ((nw_gw == null) + + ((nw_gw == null || nw_gw.equals("")) ? "" : (InetAddressPattern .parse(nw_gw) .resolve(domain_id))) + ":" - + ((nw_mask == null) + + ((nw_mask == null || nw_mask.equals("")) ? "" : InetAddressPattern.parse(nw_mask).resolve( domain_id)) @@ -342,6 +343,7 @@ public class CommandDomainNew extends Command { } catch (CommandFailedException e) { throw e; } catch (Exception e) { + e.printStackTrace(); throw new CommandFailedException( "Could not create new domain (" + e + ")", e); |