Added more docs and stuff.
This commit is contained in:
		
							parent
							
								
									d16d81209d
								
							
						
					
					
						commit
						4b6df5bf79
					
				| 
						 | 
				
			
			@ -1,2 +1,4 @@
 | 
			
		|||
# distribugit
 | 
			
		||||
Tool for performing operations on many git repositories at once.
 | 
			
		||||
# DistribuGit
 | 
			
		||||
Tool for performing operations on many git repositories at once. It works by cloning a set of repositories, and applying an action to each repository.
 | 
			
		||||
 | 
			
		||||
The easiest way to use this toolset for automating git operations is to include it as a maven dependency.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -166,13 +166,14 @@ public class DistribuGit {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	public static void main(String[] args) throws IOException {
 | 
			
		||||
		new Builder()
 | 
			
		||||
		new DistribuGit.Builder()
 | 
			
		||||
				.selector(RepositorySelector.from(
 | 
			
		||||
						"https://github.com/andrewlalis/RandomHotbar.git",
 | 
			
		||||
						"https://github.com/andrewlalis/CoyoteCredit.git",
 | 
			
		||||
						"https://github.com/andrewlalis/SignalsAndSystems2021.git"
 | 
			
		||||
				))
 | 
			
		||||
				.action(git -> System.out.println("Cloned!"))
 | 
			
		||||
				.credentials(GitCredentials.ofUsernamePassword("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", ""))
 | 
			
		||||
				.action(RepositoryAction.ofCommand("/bin/bash", "../../test.sh"))
 | 
			
		||||
				.statusListener(new StatusListener() {
 | 
			
		||||
					@Override
 | 
			
		||||
					public void progressUpdated(float percentage) {
 | 
			
		||||
| 
						 | 
				
			
			@ -184,8 +185,8 @@ public class DistribuGit {
 | 
			
		|||
						System.out.println("Message: " + message);
 | 
			
		||||
					}
 | 
			
		||||
				})
 | 
			
		||||
				.strictFail(true)
 | 
			
		||||
				.cleanup(true)
 | 
			
		||||
				.strictFail(false)
 | 
			
		||||
				.cleanup(false)
 | 
			
		||||
				.build().doActions();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,5 +5,21 @@ import org.eclipse.jgit.api.Git;
 | 
			
		|||
public interface RepositoryAction {
 | 
			
		||||
	void doAction(Git git) throws Exception;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * An action which executes a system command, as handled by
 | 
			
		||||
	 * {@link ProcessBuilder}. Note that the working directory of the command
 | 
			
		||||
	 * is set to the directory of the repository.
 | 
			
		||||
	 * @param command The command to run.
 | 
			
		||||
	 * @return The command action.
 | 
			
		||||
	 */
 | 
			
		||||
	static RepositoryAction ofCommand(String... command) {
 | 
			
		||||
		return git -> {
 | 
			
		||||
			ProcessBuilder pb = new ProcessBuilder(command);
 | 
			
		||||
			pb.directory(git.getRepository().getWorkTree());
 | 
			
		||||
			pb.inheritIO();
 | 
			
		||||
			Process p = pb.start();
 | 
			
		||||
			int result = p.waitFor();
 | 
			
		||||
			if (result != 0) throw new IllegalStateException("Non-zero exit code from script.");
 | 
			
		||||
		};
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue