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;