1 package org.apache.maven.scm.provider.cvslib.command.blame;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.scm.ScmException;
23 import org.apache.maven.scm.ScmFileSet;
24 import org.apache.maven.scm.command.blame.AbstractBlameCommand;
25 import org.apache.maven.scm.command.blame.BlameScmResult;
26 import org.apache.maven.scm.provider.ScmProviderRepository;
27 import org.apache.maven.scm.provider.cvslib.command.CvsCommand;
28 import org.apache.maven.scm.provider.cvslib.command.CvsCommandUtils;
29 import org.apache.maven.scm.provider.cvslib.repository.CvsScmProviderRepository;
30 import org.codehaus.plexus.util.cli.Commandline;
31
32
33
34
35
36 public abstract class AbstractCvsBlameCommand
37 extends AbstractBlameCommand
38 implements CvsCommand
39 {
40
41
42
43 public BlameScmResult executeBlameCommand( ScmProviderRepository repo, ScmFileSet fileSet, String filename )
44 throws ScmException
45 {
46 CvsScmProviderRepository repository = (CvsScmProviderRepository) repo;
47
48 Commandline cl = CvsCommandUtils.getBaseCommand( "annotate", repository, fileSet );
49 cl.createArg().setValue( filename );
50
51 if ( getLogger().isInfoEnabled() )
52 {
53 getLogger().info( "Executing: " + cl );
54 getLogger().info( "Working directory: " + cl.getWorkingDirectory().getAbsolutePath() );
55 }
56
57 return executeCvsCommand( cl, repository );
58 }
59
60 protected abstract BlameScmResult executeCvsCommand( Commandline cl, CvsScmProviderRepository repository )
61 throws ScmException;
62 }