1 package org.apache.maven.scm.provider.cvslib.cvsjava.command.list;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.BufferedReader;
23 import java.io.ByteArrayInputStream;
24 import java.io.InputStreamReader;
25
26 import org.apache.maven.scm.ScmException;
27 import org.apache.maven.scm.command.list.ListScmResult;
28 import org.apache.maven.scm.provider.cvslib.command.list.AbstractCvsListCommand;
29 import org.apache.maven.scm.provider.cvslib.command.list.CvsListConsumer;
30 import org.apache.maven.scm.provider.cvslib.cvsjava.util.CvsConnection;
31 import org.apache.maven.scm.provider.cvslib.cvsjava.util.CvsLogListener;
32 import org.codehaus.plexus.util.cli.Commandline;
33
34
35
36
37
38 public class CvsJavaListCommand
39 extends AbstractCvsListCommand
40 {
41
42 protected ListScmResult executeCvsCommand( Commandline cl )
43 throws ScmException
44 {
45 CvsLogListener logListener = new CvsLogListener();
46
47 CvsListConsumer consumer = new CvsListConsumer( getLogger() );
48
49 try
50 {
51 boolean isSuccess = CvsConnection.processCommand( cl.getArguments(),
52 cl.getWorkingDirectory().getAbsolutePath(), logListener,
53 getLogger() );
54
55 if ( !isSuccess )
56 {
57 return new ListScmResult( cl.toString(), "The cvs command failed.", logListener.getStderr().toString(),
58 false );
59 }
60 BufferedReader stream = new BufferedReader(
61 new InputStreamReader( new ByteArrayInputStream( logListener.getStdout().toString().getBytes() ) ) );
62
63 String line;
64
65 while ( ( line = stream.readLine() ) != null )
66 {
67 consumer.consumeLine( line );
68 }
69 }
70 catch ( Exception e )
71 {
72 e.printStackTrace();
73 return new ListScmResult( cl.toString(), "The cvs command failed.", logListener.getStderr().toString(),
74 false );
75 }
76
77 return new ListScmResult( cl.toString(), consumer.getEntries() );
78 }
79 }