package com.coverity.ps.common.plugins.scm;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/*
* Provides support for subversion
*/
public class ClearCase implements ScmPlugin {
String view;
public ClearCase() {
view = "cleartool desc -fmt";
}
/**
* Returns the username of the last person modified the file
*/
public String getFileOwner(String file) throws Exception {
final String command = "cleartool desc -fmt + '\"' + " + view + file + '\"';
try {
Process process = Runtime.getRuntime().exec(command);
String result = InputStreamToString(process.getInputStream());
return result;
} catch (Exception e) {
return "";
}
}
private String InputStreamToString(InputStream in) throws IOException {
StringBuilder inputStringBuilder = new StringBuilder();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String line = bufferedReader.readLine();
while(line != null){
inputStringBuilder.append(line);
line = bufferedReader.readLine();
}
return inputStringBuilder.toString();
}
/**
* Command line test
*
* @param args file name
*/
public static void main(String[] args) {
try {
if(args.length == 1) {
ClearCase svn = new ClearCase();
String author = svn.getFileOwner(args[0]);
System.out.println("file owner=" + author);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}