Author: ltheussl Date: Wed Jul 29 14:21:09 2009 New Revision: 798916 URL: http://svn.apache.org/viewvc?rev=798916&view=rev Log: [MSITE-30, MSITE-141, MSITE-339, MSITE-380] Make chmod command after deploy optional and configurable.
Modified: maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java Modified: maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java?rev=798916&r1=798915&r2=798916&view=diff ============================================================================== --- maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java (original) +++ maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java Wed Jul 29 14:21:09 2009 @@ -85,6 +85,33 @@ private File inputDirectory; /** + * Whether to run the "chmod" command on the remote site after the deploy. + * Defaults to "true". + * + * @parameter expression="${maven.site.chmod}" default-value="true" + * @since 2.1 + */ + private boolean chmod; + + /** + * The mode used by the "chmod" command. Only used if chmod = true. + * Defaults to "g+w,a+rX". + * + * @parameter expression="${maven.site.chmod.mode}" default-value="g+w,a+rX" + * @since 2.1 + */ + private String chmodMode; + + /** + * The options used by the "chmod" command. Only used if chmod = true. + * Defaults to "-Rf". + * + * @parameter expression="${maven.site.chmod.options}" default-value="-Rf" + * @since 2.1 + */ + private String chmodOptions; + + /** * @parameter expression="${project}" * @required * @readonly @@ -107,6 +134,7 @@ private PlexusContainer container; + /** {...@inheritdoc} */ public void execute() throws MojoExecutionException { @@ -186,12 +214,10 @@ wagon.putDirectory( inputDirectory, "." ); - // TODO: current wagon uses zip which will use the umask on remote host instead of honouring our settings - // Force group writeable - if ( wagon instanceof CommandExecutor ) + if ( chmod && wagon instanceof CommandExecutor ) { CommandExecutor exec = (CommandExecutor) wagon; - exec.executeCommand( "chmod -Rf g+w,a+rX " + repository.getBasedir() ); + exec.executeCommand( "chmod " + chmodOptions + " " + chmodMode + " " + repository.getBasedir() ); } } catch ( ResourceDoesNotExistException e ) Modified: maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java?rev=798916&r1=798915&r2=798916&view=diff ============================================================================== --- maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java (original) +++ maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java Wed Jul 29 14:21:09 2009 @@ -77,13 +77,40 @@ * The identifier of the repository where the staging site will be deployed. This id will be used to lookup a * corresponding <code><server></code> entry from the <code>settings.xml</code>. If a matching * <code><server></code> entry is found, its configured credentials will be used for authentication. - * + * * @parameter expression="${stagingRepositoryId}" default-value="stagingSite" * @since 2.0.1 */ private String stagingRepositoryId; /** + * Whether to run the "chmod" command on the remote site after the deploy. + * Defaults to "true". + * + * @parameter expression="${maven.site.chmod}" default-value="true" + * @since 2.1 + */ + private boolean chmod; + + /** + * The mode used by the "chmod" command. Only used if chmod = true. + * Defaults to "g+w,a+rX". + * + * @parameter expression="${maven.site.chmod.mode}" default-value="g+w,a+rX" + * @since 2.1 + */ + private String chmodMode; + + /** + * The options used by the "chmod" command. Only used if chmod = true. + * Defaults to "-Rf". + * + * @parameter expression="${maven.site.chmod.options}" default-value="-Rf" + * @since 2.1 + */ + private String chmodOptions; + + /** * @component */ private WagonManager wagonManager; @@ -100,7 +127,7 @@ private PlexusContainer container; /** - * @see org.apache.maven.plugin.Mojo#execute() + * {...@inheritdoc} */ public void execute() throws MojoExecutionException, MojoFailureException @@ -167,12 +194,10 @@ wagon.putDirectory( new File( stagingDirectory, getStructure( project, false ) ), "." ); - // TODO: current wagon uses zip which will use the umask on remote host instead of honouring our settings - // Force group writeable - if ( wagon instanceof CommandExecutor ) + if ( chmod && wagon instanceof CommandExecutor ) { CommandExecutor exec = (CommandExecutor) wagon; - exec.executeCommand( "chmod -Rf g+w,a+rX " + repository.getBasedir() ); + exec.executeCommand( "chmod " + chmodOptions + " " + chmodMode + " " + repository.getBasedir() ); } } catch ( ResourceDoesNotExistException e )