aboutsummaryrefslogtreecommitdiffstats
path: root/tools/control/src/org/xenoserver/cmdline/Main.java
diff options
context:
space:
mode:
Diffstat (limited to 'tools/control/src/org/xenoserver/cmdline/Main.java')
-rw-r--r--tools/control/src/org/xenoserver/cmdline/Main.java32
1 files changed, 19 insertions, 13 deletions
diff --git a/tools/control/src/org/xenoserver/cmdline/Main.java b/tools/control/src/org/xenoserver/cmdline/Main.java
index 3b8cc554b7..fe7c6a2c25 100644
--- a/tools/control/src/org/xenoserver/cmdline/Main.java
+++ b/tools/control/src/org/xenoserver/cmdline/Main.java
@@ -43,12 +43,23 @@ public class Main {
new ParseGroup( "domain", domaincommands ),
new ParseGroup( "partitions", partitioncommands ),
new ParseGroup( "physical", physicalcommands ),
+ new ParseScript(),
new ParseGroup( "vd", vdcommands ),
new ParseGroup( "vbd", vbdcommands )
};
/** The top-level parser. */
static final CommandParser parser = new ParseGroup( null, commands );
+ public static void executeArgList (Defaults d, LinkedList arglist)
+ throws ParseFailedException, CommandFailedException
+ {
+ if (arglist.size() == 0) {
+ help.parse(null, null);
+ } else {
+ parser.parse(d, arglist);
+ }
+ }
+
public static void main(String[] args) {
Defaults d = new Defaults();
int ec = -1;
@@ -57,20 +68,15 @@ public class Main {
arglist.add( args[i] );
}
- if (args.length == 0) {
+ try {
+ executeArgList (d, arglist);
+ ec = 0;
+ } catch (NoSuchElementException e) {
help.parse(null, null);
- } else {
- try
- {
- parser.parse(d, arglist);
- ec = 0;
- } catch (NoSuchElementException e) {
- help.parse(null, null);
- } catch (ParseFailedException e) {
- System.err.println( e.getMessage() );
- } catch (CommandFailedException e) {
- System.err.println( e.getMessage() );
- }
+ } catch (ParseFailedException e) {
+ System.err.println( e.getMessage() );
+ } catch (CommandFailedException e) {
+ System.err.println( e.getMessage() );
}
System.exit(ec);