Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package ca.carleton.gcrc.couch.command.dump;
  
  import java.io.File;
  import java.util.List;
  import java.util.Stack;
  
 
 public class DumpMain {
 
 	static public void main(String[] args) {
 		DumpSettings dumpSettings = null;
 		
 		try {
 			List<Stringarguments = new ArrayList<String>(args.length);
 			for(String arg : args){
 				arguments.add(arg);
 			}
 			
 			dumpSettings = new DumpSettings(..);
 			
 			DumpMain app = new DumpMain();
 			app.execute(dumpSettingsarguments);
 			System.exit(0);
 			
 		} catch(Exception e) {
 			
 			PrintStream err = .;
 			ifnull != dumpSettings ) {
 				err = dumpSettings.getErrStream();
 			} 
 			
 			ifnull != dumpSettings 
 			 && dumpSettings.isDebug() ){
 				
 			} else {
 				err.print("Error: "+e.getMessage());
 				err.println();
 				
 				int limit = 10;
 				Throwable cause = e.getCause();
 				while(null != cause && limit > 0) {
 					err.print("Caused by: "+cause.getMessage());
 					err.println();
 					cause = cause.getCause();
 					--limit;
 				}
 			}
 			
 			// Error
 			System.exit(1);
 		}
 	}
 	
 	public void execute(DumpSettings dumpSettingsList<Stringargsthrows Exception {
 		
 		// Turn arguments into a stack
 		Stack<StringargumentStack = new Stack<String>();
 		for(int i=args.size()-1; i>=0; --i){
 			argumentStack.pushargs.get(i) );
 		}
 		
 		// Process global options
 		dumpSettings.parseCommandLineArguments(argumentStack);
 		
 		// Check for help
 		ifdumpSettings.isHelpRequested() ) {
 			helpdumpSettings.getOutStream() );
 			return;
 		}
 		
 		// Ask the user about the missing options
 		dumpSettings.acceptUserOptions();
 
 		// Check that dump dir exists
 		File dumpDir = dumpSettings.getDumpDir();
 		ifnull == dumpDir ) {
 			throw new Exception("--dump-dir must be specified");
 		}
 		
 		// Get CouchDb client
 		CouchDb couchDb = dumpSettings.createCouchDb();
 		
 		// Create dump process
 		DumpListener listener = new DumpListenerdumpSettings.getOutStream() );
 		DbDumpProcess dumpProcess = new DbDumpProcess(couchDbdumpDir);
 		List<StringdocIds = dumpSettings.getDocIds();
 		ifdocIds.size() < 1 ) {
 			dumpProcess.setAllDocs(true);
 		} else {
 			for(String docId : docIds) {
 				dumpProcess.addDocId(docId);
 			}
 		}
		dumpProcess.setListener(listener);
		dumpProcess.dump();
	}
	private void help(PrintStream ps) {
		ps.println("couch-dump - Help");
		ps.println();
		ps.println("Command Syntax:");
		ps.println("  couch-dump [<option> ...]");
		ps.println();
		ps.println("This command extracts documents from a CouchDb database and");
		ps.println("saves them to disk. The complete database can be dumped if");
		ps.println("the --doc-id option is not specified. On the other hand, it is");
		ps.println("possible to dump a subset of the documents by specifying the");
		ps.println("--doc-id option once or multiple times.");
		ps.println();
		ps.println("<option> can be one of:");
		ps.println("--help");
		ps.println("    This option prints the help instructions.");
		ps.println();
		ps.println("--debug");
		ps.println("    This options specifies that more information is");
		ps.println("    provided during the execution.");
		ps.println();
		ps.println("--dump-dir <dir>");
		ps.println("    Directory where all documents are dumped to.");
		ps.println();
		ps.println("--server <url>");
		ps.println("    URL to the CouchDb server.");
		ps.println();
		ps.println("--db <dbName>");
		ps.println("    Name of the database to dump or restore.");
		ps.println();
		ps.println("--user <user>");
		ps.println("    User name to be used during the dump or restore.");
		ps.println();
		ps.println("--password <password>");
		ps.println("    Password associated with the user.");
		ps.println();
		ps.println("--doc-id <docId>");
		ps.println("    If this option is not specified, then all documents are selected.");
		ps.println("    for dump or restore. If this option is specified once or multiple");
		ps.println("    times, then only the requested documents are selected.");
	}
New to GrepCode? Check out our FAQ X