Author: olamy
Date: Sat Nov 12 21:57:08 2011
New Revision: 1201337

URL: http://svn.apache.org/viewvc?rev=1201337&view=rev
Log:
add a methdod to run a script with a script path

Modified:
    
maven/shared/trunk/maven-script-interpreter/src/main/java/org/apache/maven/shared/scriptinterpreter/ScriptRunner.java

Modified: 
maven/shared/trunk/maven-script-interpreter/src/main/java/org/apache/maven/shared/scriptinterpreter/ScriptRunner.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-script-interpreter/src/main/java/org/apache/maven/shared/scriptinterpreter/ScriptRunner.java?rev=1201337&r1=1201336&r2=1201337&view=diff
==============================================================================
--- 
maven/shared/trunk/maven-script-interpreter/src/main/java/org/apache/maven/shared/scriptinterpreter/ScriptRunner.java
 (original)
+++ 
maven/shared/trunk/maven-script-interpreter/src/main/java/org/apache/maven/shared/scriptinterpreter/ScriptRunner.java
 Sat Nov 12 21:57:08 2011
@@ -139,7 +139,7 @@ public class ScriptRunner
     }
 
     /**
-     * Runs the specified hook script of the specified project (if any).
+     * Runs the specified hook script.
      *
      * @param scriptDescription  The description of the script to use for 
logging, must not be <code>null</code>.
      * @param basedir            The base directory of the project, must not 
be <code>null</code>.
@@ -151,7 +151,7 @@ public class ScriptRunner
      * @param failOnException    If <code>true</code> and the script throws an 
exception, then a {@link RunFailureException}
      *                           will be thrown, otherwise a {@link 
RunErrorException} will be thrown on script exception.
      * @throws org.apache.maven.plugin.MojoExecutionException
-     *                               If an I/O error occurred while reading 
the script file.
+     *                             If an I/O error occurred while reading the 
script file.
      * @throws RunFailureException If the script did not return 
<code>true</code> of threw an exception.
      */
     public void run( final String scriptDescription, final File basedir, final 
String relativeScriptPath,
@@ -161,7 +161,7 @@ public class ScriptRunner
     {
         if ( relativeScriptPath == null )
         {
-            getLog().info( "relativeScriptPath is null: not executing script" 
);
+            getLog().debug( "relativeScriptPath is null: not executing script" 
);
             return;
         }
 
@@ -173,10 +173,39 @@ public class ScriptRunner
             return;
         }
 
+        run( scriptDescription, scriptFile, context, logger, stage, 
failOnException );
+
+    }
+
+    /**
+     * Runs the specified hook script.
+     *
+     * @param scriptDescription  The description of the script to use for 
logging, must not be <code>null</code>.
+     * @param scriptFile         The path to the script, may be 
<code>null</code> to skip the script execution.
+     * @param context            The key-value storage used to share 
information between hook scripts, may be <code>null</code>.
+     * @param logger             The logger to redirect the script output to, 
may be <code>null</code> to use stdout/stderr.
+     * @param stage              The stage of the build job the script is 
invoked in, must not be <code>null</code>. This is for logging purpose only.
+     * @param failOnException    If <code>true</code> and the script throws an 
exception, then a {@link RunFailureException}
+     *                           will be thrown, otherwise a {@link 
RunErrorException} will be thrown on script exception.
+     * @throws org.apache.maven.plugin.MojoExecutionException
+     *                             If an I/O error occurred while reading the 
script file.
+     * @throws RunFailureException If the script did not return 
<code>true</code> of threw an exception.
+     */
+    public void run( final String scriptDescription, File scriptFile, final 
Map<String, ? extends Object> context,
+                     final ExecutionLogger logger, String stage, boolean 
failOnException )
+        throws MojoExecutionException, RunFailureException
+    {
+
+        if ( !scriptFile.exists() )
+        {
+            getLog().debug( "scriptFile not found in directory:" + 
scriptFile.getAbsolutePath() );
+            return;
+        }
+
         getLog().info( "run script " + scriptFile.getAbsolutePath() );
 
         Map<String, Object> globalVariables = new HashMap<String, Object>( 
this.globalVariables );
-        globalVariables.put( "basedir", basedir );
+        globalVariables.put( "basedir", scriptFile.getParentFile() );
         globalVariables.put( "context", context );
 
         PrintStream out = ( logger != null ) ? logger.getPrintStream() : null;


Reply via email to