org.kie.eclipse.utils.GitUtils Maven / Gradle / Ivy
package org.kie.eclipse.utils;
import java.io.File;
import java.util.Set;
import org.eclipse.egit.core.RepositoryUtil;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.RepositoryCache.FileKey;
import org.eclipse.jgit.util.FS;
public class GitUtils {
private GitUtils() {
}
public static RepositoryUtil getRepositoryUtil() {
return org.eclipse.egit.ui.Activator.getDefault().getRepositoryUtil();
}
public static void findGitDirsRecursive(File repoRoot, Set gitDirs, boolean lookForNestedRepositories) {
if (!repoRoot.exists() || !repoRoot.isDirectory()) {
return;
}
File[] children = repoRoot.listFiles();
// simply ignore null
if (children == null)
return;
for (File child : children) {
if (!child.isDirectory())
continue;
if (FileKey.isGitRepository(child, FS.DETECTED)) {
gitDirs.add(child);
}
else if (FileKey.isGitRepository(new File(child,
Constants.DOT_GIT), FS.DETECTED)) {
gitDirs.add(new File(child, Constants.DOT_GIT));
}
else if (lookForNestedRepositories) {
findGitDirsRecursive(child, gitDirs, lookForNestedRepositories);
}
}
}
}