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.List;
  import java.util.Stack;
  import java.util.Vector;
  
 
 public class CommandDump implements Command {
 
 	public String getCommandString() {
 		return "dump";
 	}
 
 	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 - Dump Command");
 		ps.println();
 		ps.println("The dump command allows a user to take a snapshot of the");
 		ps.println("CouchDb database support the atlas and storing the snapshot");
 		ps.println("to disk.");
 		ps.println();
 		ps.println("Command Syntax:");
 		ps.println("  nunaliit [<global-options>] dump [<dump-options>]");
 		ps.println();
 		ps.println("Global Options");
 		CommandHelp.reportGlobalSettingAtlasDir(ps);
 		ps.println();
 		ps.println("Dump Options");
 		ps.println("  --dump-dir <dir>   Directory where snapshot should be stored");
 		ps.println("  --doc-id   <docId> Specifies which document(s) should be");
 		ps.println("                     dumped by selecting the document identifier.");
 		ps.println("                     This option can be used multiple times to include");
 		ps.println("                     multiple documents in the dump. If this option");
 		ps.println("                     is not used, all documents are dumped.");
 	}
 
 	public void runCommand(
 		,Stack<StringargumentStack
 		) throws Exception {
 
 		File atlasDir = gs.getAtlasDir();
 
 		// Compute default dump dir
 		File dumpDir = null;
 		{
 			Calendar calendar = Calendar.getInstance();
 			String name = String.format(
 				"dump_%04d-%02d-%02d_%02d:%02d:%02d"
 				,calendar.get(.)
 				,(calendar.get(.)+1)
 				,calendar.get(.)
 				,calendar.get(.)
 				,calendar.get(.)
 				);
 			dumpDir = new File(atlasDir"dump/"+name);
 		}
 		
 		// Pick up options
 		List<StringdocIds = new Vector<String>();
 		whilefalse == argumentStack.empty() ){
 			String optionName = argumentStack.peek();
 			if"--dump-dir".equals(optionName) ){
 				argumentStack.pop();
 				ifargumentStack.size() < 1 ){
 					throw new Exception("--dump-dir option requires a directory");
 				}
 				
 				String dumpDirStr = argumentStack.pop();
 				dumpDir = new File(dumpDirStr);
 				
 			} else if"--doc-id".equals(optionName) ){
 				argumentStack.pop();
 				ifargumentStack.size() < 1 ){
 					throw new Exception("--doc-id option requires a document identifier");
 				}
				String docId = argumentStack.pop();
				docIds.add(docId);
else {
				break;
			}
		}
		gs.getOutStream().println("Dumping to "+dumpDir.getAbsolutePath());
		// Load properties for atlas
		AtlasProperties atlasProperties = AtlasProperties.fromAtlasDir(atlasDir);
		CouchDb couchDb = CommandSupport.createCouchDb(gsatlasProperties);
		DumpListener listener = new DumpListenergs.getOutStream() );
		DbDumpProcess dumpProcess = new DbDumpProcess(couchDbdumpDir);
		ifdocIds.size() < 1 ) {
			dumpProcess.setAllDocs(true);
else {
			for(String docId : docIds) {
				dumpProcess.addDocId(docId);
			}
		}
		dumpProcess.setListener(listener);
		dumpProcess.dump();
	}
New to GrepCode? Check out our FAQ X