All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.kie.eclipse.utils.GitUtils Maven / Gradle / Ivy

There is a newer version: 7.48.0.Final
Show newest version
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);
			}
		}
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy