Skip to content

Commit

Permalink
Merge pull request #3 from codingtony/master
Browse files Browse the repository at this point in the history
Support getting branch info from Mercurial (Hg)
  • Loading branch information
olamy committed May 9, 2016
2 parents 8aa9649 + 6d060b0 commit d99aeaf
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 26 deletions.
15 changes: 13 additions & 2 deletions src/main/java/org/codehaus/mojo/build/CreateMojo.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
import org.apache.maven.scm.ScmException;
import org.apache.maven.scm.ScmFile;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmResult;
import org.apache.maven.scm.command.info.InfoItem;
import org.apache.maven.scm.command.info.InfoScmResult;
import org.apache.maven.scm.command.status.StatusScmResult;
Expand All @@ -57,6 +58,8 @@
import org.apache.maven.scm.provider.ScmProvider;
import org.apache.maven.scm.provider.git.gitexe.command.branch.GitBranchCommand;
import org.apache.maven.scm.provider.git.repository.GitScmProviderRepository;
import org.apache.maven.scm.provider.hg.HgScmProvider;
import org.apache.maven.scm.provider.hg.HgUtils;
import org.apache.maven.scm.repository.ScmRepository;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.StringUtils;
Expand Down Expand Up @@ -567,18 +570,26 @@ public List<ScmFile> getStatus()
public String getScmBranch()
throws MojoExecutionException
{
/* git branch can be obtained directly by a command */
try
{
ScmRepository repository = getScmRepository();
ScmProvider provider = scmManager.getProviderByRepository( repository );
/* git branch can be obtained directly by a command */
if ( GitScmProviderRepository.PROTOCOL_GIT.equals( provider.getScmType() ) )
{
ScmFileSet fileSet = new ScmFileSet( scmDirectory );
return GitBranchCommand.getCurrentBranch( getLogger(),
(GitScmProviderRepository) repository.getProviderRepository(),
fileSet );
}
} else if ( provider instanceof HgScmProvider ) {
/* hg branch can be obtained directly by a command */
HgOutputConsumer consumer = new HgOutputConsumer( getLogger() );
ScmResult result = HgUtils.execute( consumer, logger, scmDirectory, new String[] { "id", "-b" } );
checkResult( result );
if (StringUtils.isNotEmpty(consumer.getOutput())) {
return consumer.getOutput();
}
}
}
catch ( ScmException e )
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import java.util.List;
import java.util.TimeZone;

import org.apache.commons.lang.StringUtils;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
Expand Down
23 changes: 0 additions & 23 deletions src/main/java/org/codehaus/mojo/build/HgChangeSetMojo.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,9 @@
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import org.apache.maven.scm.ScmException;
import org.apache.maven.scm.ScmFileStatus;
import org.apache.maven.scm.ScmResult;
import org.apache.maven.scm.log.ScmLogDispatcher;
import org.apache.maven.scm.log.ScmLogger;
import org.apache.maven.scm.provider.hg.HgUtils;
import org.apache.maven.scm.provider.hg.command.HgConsumer;
import org.codehaus.plexus.util.StringUtils;

/**
Expand Down Expand Up @@ -168,25 +165,5 @@ private void setProperty( String property, String value )
}
}

private static class HgOutputConsumer
extends HgConsumer
{

private String output;

private HgOutputConsumer( ScmLogger logger )
{
super( logger );
}

public void doConsume( ScmFileStatus status, String line )
{
output = line;
}

private String getOutput()
{
return output;
}
}
}
29 changes: 29 additions & 0 deletions src/main/java/org/codehaus/mojo/build/HgOutputConsumer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package org.codehaus.mojo.build;

import org.apache.maven.scm.ScmFileStatus;
import org.apache.maven.scm.log.ScmLogger;
import org.apache.maven.scm.provider.hg.command.HgConsumer;

class HgOutputConsumer
extends HgConsumer
{

private String output;

HgOutputConsumer( ScmLogger logger )
{
super( logger );
}

@Override
public void doConsume( ScmFileStatus status, String line )
{
output = line;
}

String getOutput()
{
return output;
}
}

0 comments on commit d99aeaf

Please sign in to comment.