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

prerna.util.git.reactors.GitVersion Maven / Gradle / Ivy

The newest version!
package prerna.util.git.reactors;

import org.apache.logging.log4j.Logger;

import prerna.reactor.AbstractReactor;
import prerna.sablecc2.om.PixelDataType;
import prerna.sablecc2.om.PixelOperationType;
import prerna.sablecc2.om.nounmeta.NounMetadata;
import prerna.util.Utility;
import prerna.util.git.GitPushUtils;
import prerna.util.git.GitRepoUtils;
import prerna.util.git.GitUtils;

public class GitVersion extends AbstractReactor {

	public GitVersion() {
		this.keysToGet = new String[]{"app"};
	}

	@Override
	public NounMetadata execute() {
		organizeKeys();

		String baseFolder = Utility.getBaseFolder();
		String appFolder = baseFolder + "db/" + keyValue.get(keysToGet[0]);	
		
		Logger logger = getLogger(this.getClass().getName());
		logger.info("Converting " + appFolder + " to a versionable app");
		logger.info("Checking to see if it is already versioned");

		if(GitUtils.isGit(appFolder)) {
			logger.info("App is already versionable");
		} else {
			logger.info("Creating initial version");
			GitRepoUtils.makeLocalDatabaseGitVersionFolder(appFolder);
			// we create a version folder
			String versionFolder = appFolder + "/version";
			GitPushUtils.addAllFiles(versionFolder, false);
			GitPushUtils.commitAddedFiles(versionFolder);
		}
		logger.info("Complete");

		return new NounMetadata(true, PixelDataType.BOOLEAN, PixelOperationType.MARKET_PLACE);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy