package ilarkesto.scm.git;
import ilarkesto.base.Proc;
import ilarkesto.scm.AScmProject;
import ilarkesto.scm.AScmTool;
import java.io.File;
public class Git extends AScmTool {
public static final Git THIS = new Git();
private String executable = "git";
String exec(File workDir, String... parameters) {
Proc proc = new Proc(executable);
proc.addParameters(parameters);
proc.setWorkingDir(workDir);
proc.addEnvironmentParameter("LANG", "en_US.UTF-8");
return proc.execute(0, 1);
}
@Override
protected AScmProject createProject(File dir) {
return new GitProject(this, dir);
}
@Override
public String getVersion() {
String output = exec(null, "version");
output = output.trim();
return output.substring(output.lastIndexOf(' ')).trim();
}
@Override
public String getName() {
return "git";
}
@Override
public boolean isProjectDir(File dir) {
File svnDir = new File(dir.getPath() + "/.git");
return svnDir.exists() && svnDir.isDirectory();
}
public void setExecutable(String executable) {
this.executable = executable;
}
}