Author: xavier
Date: Wed Apr 25 13:52:59 2007
New Revision: 532481

URL: http://svn.apache.org/viewvc?view=rev&rev=532481
Log:
IMPROVEMENT: Allow "main" parameters to be passed directly (instead of using 
-args flag) (IVY-480) (thanks to Archie Cobbs)

Modified:
    incubator/ivy/core/trunk/CHANGES.txt
    incubator/ivy/core/trunk/src/java/org/apache/ivy/Main.java

Modified: incubator/ivy/core/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/CHANGES.txt?view=diff&rev=532481&r1=532480&r2=532481
==============================================================================
--- incubator/ivy/core/trunk/CHANGES.txt (original)
+++ incubator/ivy/core/trunk/CHANGES.txt Wed Apr 25 13:52:59 2007
@@ -46,6 +46,8 @@
 
    version in SVN
 =====================================
+- IMPROVEMENT: Allow "main" parameters to be passed directly (instead of using 
-args flag) (IVY-480) (thanks to Archie Cobbs)
+
 - BUG: ivy:install ant task does not fail on error (IVY-475) (thanks to 
Jeffrey Blatttman)
 
    2.0.0-alpha1-incubating

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/Main.java
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/Main.java?view=diff&rev=532481&r1=532480&r2=532481
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/Main.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/Main.java Wed Apr 25 
13:52:59 2007
@@ -347,8 +347,20 @@
                 }
             }
             if (line.hasOption("main")) {
-                invoke(ivy, cache, md, confs, line.getOptionValue("main"),
-                               line.getOptionValues("args"));
+               // merge -args and left over args 
+               String[] fargs = line.getOptionValues("args");
+               if (fargs == null) {
+                   fargs = new String[0];
+               }
+               String[] extra = line.getArgs();
+               if (extra == null) {
+                   extra = new String[0];
+               }
+               String[] params = new String[fargs.length + extra.length];
+               System.arraycopy(fargs, 0, params, 0, fargs.length);
+               System.arraycopy(extra, 0, params, fargs.length, extra.length);
+               // invoke with given main class and merged params
+               invoke(ivy, cache, md, confs, line.getOptionValue("main"), 
params);
             }
         } catch( ParseException exp ) {
             // oops, something went wrong


Reply via email to