Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package ca.carleton.gcrc.couch.command;
  
  import java.io.File;
  import java.util.Calendar;
  import java.util.Stack;
  
 
 public class CommandUpgrade implements Command {
 
 	public String getCommandString() {
 		return "upgrade";
 	}
 
 	public boolean matchesKeyword(String keyword) {
 		ifgetCommandString().equalsIgnoreCase(keyword) ) {
 			return true;
 		}
 		return false;
 	}
 
 	public boolean requiresAtlasDir() {
 		return true;
 	}
 
 	public void reportHelp(PrintStream ps) {
 		ps.println("Nunaliit2 Atlas Framework - Upgrade Command");
 		ps.println();
 		ps.println("The upgrade command allows a user to modifies the files located in an atlas");
 		ps.println("so that they correspond to a different version of Nunaliit. This command");
 		ps.println("should be used when a newer version of Nunaliit is available and the");
 		ps.println("atlas creator wishes to use the newer version.");
 		ps.println();
 		ps.println("Command Syntax:");
 		ps.println("  nunaliit [<global-options>] upgrade [<upgrade-options>]");
 		ps.println();
 		ps.println("Global Options");
 		CommandHelp.reportGlobalSettingAtlasDir(ps);
 		ps.println();
 		ps.println("Upgrade Options");
 		ps.println("  --test        Does not perform any changes. Simply print");
 		ps.println("                what would happen. Does not run 'config' command.");
 		ps.println("  --no-config   Supresses the automatic 'config' command after");
 		ps.println("                completing upgrade process.");
 	}
 
 	public void runCommand(
 		,Stack<StringargumentStack
 		) throws Exception {
 		
 		// Pick up options
 		boolean noConfig = false;
 		boolean justTest = false;
 		whilefalse == argumentStack.empty() ){
 			String optionName = argumentStack.peek();
 			if"--test".equals(optionName) ){
 				argumentStack.pop();
 				justTest = true;
 				
 			} else if"--no-config".equals(optionName) ){
 				argumentStack.pop();
 				noConfig = true;
 				
 			} else {
 				break;
 			}
 		}
 
 		
 		File atlasDir = gs.getAtlasDir();
 
 		// Verify that content directory is available
 		File contentDir = PathComputer.computeContentDirgs.getInstallDir() );
 		ifnull == contentDir 
 		 || false == contentDir.exists() 
 		 || false == contentDir.isDirectory() ){
 			throw new Exception("Unable to find content directory");
 		}
 		
 		// Compute upgrade directory
 		File upgradeCollisionDir = null;
 		{
 			Calendar calendar = Calendar.getInstance();
 			String name = String.format(
 				"upgrade_%04d-%02d-%02d_%02d:%02d:%02d"
				,calendar.get(.)
				,(calendar.get(.)+1)
				,calendar.get(.)
				,calendar.get(.)
				);
			upgradeCollisionDir = new File(atlasDir"upgrade/"+name);
		}
		// Figure out upgrade operations
		UpgradeOperations operations = null;
		ifjustTest ) {
			operations = new UpgradeOperationsNull();
else {
			operations = new UpgradeOperationsBasic(
				atlasDir
				,contentDir
				,upgradeCollisionDir
				);
		}
		// Figure out reporting level
				atlasDir
				,upgradeCollisionDir
				,operations
				);
		ifjustTest ) {
			reporting.setReportOperations(true);
			reporting.setReportCollisions(false);
		}
		// Upgrade content
		try {
			UpgradeProcess upgradeProcess = new UpgradeProcess();
			UpgradeReport upgradeReport = upgradeProcess.computeUpgrade(
				contentDir
				,atlasDir
				,new FileSetManifest() // new installation
				);
			upgradeProcess.performUpgrade(
				upgradeReport
				,reporting
				);
catch(Exception e) {
			throw new Exception("Unable to upgrade content",e);
		}
		// Perform configuration, unless disabled
		iffalse == noConfig && false == justTest ){
			CommandConfig config = new CommandConfig();
			Stack<StringconfigArgs = new Stack<String>();
			config.runCommand(gsconfigArgs);
		}
	}
New to GrepCode? Check out our FAQ X