public static Options constructGnuOptions() { final Options gnuOptions = new Options(); Option aminoDefaultConfigurationOption = new Option( "d", "amino_default_config_path", true, "The path where the amino default file lives."); aminoDefaultConfigurationOption.setRequired(true); gnuOptions.addOption(aminoDefaultConfigurationOption); gnuOptions.addOption("b", "base_dir", true, "The base directory of the running job"); gnuOptions.addOption( "c", "amino_config_file_path", true, "A CSV of filenames or paths which will be acted like a classpath setting up configurations!"); gnuOptions.addOption( "stop", "stop_on_first_phase", false, "Stop after the first phase of an AminoEnrichmentJob"); Option propertyOverride = new Option( "D", "property_override", true, "A map of key/value configuration properties to override (ie: 'key=value')"); propertyOverride.setValueSeparator('='); propertyOverride.setArgs(2); gnuOptions.addOption(propertyOverride); return gnuOptions; }
public static void main(String args[]) throws IOException, ParseException { Options options = new Options(); options.addOption("u", "uniquehits", false, "only output hits with a single mapping"); options.addOption( "s", "nosuboptimal", false, "do not include hits whose score is not equal to the best score for the read"); CommandLineParser parser = new GnuParser(); CommandLine cl = parser.parse(options, args, false); boolean uniqueOnly = cl.hasOption("uniquehits"); boolean filterSubOpt = cl.hasOption("nosuboptimal"); ArrayList<String[]> lines = new ArrayList<String[]>(); String line; String lastRead = ""; BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); while ((line = reader.readLine()) != null) { String pieces[] = line.split("\t"); if (!pieces[0].equals(lastRead)) { printLines(lines, uniqueOnly, filterSubOpt); lines.clear(); } lines.add(pieces); lastRead = pieces[0]; } printLines(lines, uniqueOnly, filterSubOpt); }
public static void main(String[] args) throws Exception { String propertyFile = null; // create the command line parser CommandLineParser parser = new PosixParser(); Options options = new Options(); options.addOption("f", "file", true, "The properties file"); options.addOption("v", "verbose", false, "Verbose logging output"); options.addOption("h", "help", false, "Help output"); try { CommandLine line = parser.parse(options, args); if (line.hasOption('v')) { org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.DEBUG); } if (line.hasOption('h')) { usage(options); } if (line.hasOption('f')) { propertyFile = line.getOptionValue('f'); } else { throw new Exception("Please supply -f"); } } catch (Exception e) { log.error("Invalid command line: " + e, e); usage(options); } Properties props = new Properties(); props.load(new FileReader(propertyFile)); startFromProperties(props); Runtime.getRuntime() .addShutdownHook( new Thread( new Runnable() { @Override public void run() { log.info("Received shutdown signal. Shutting down..."); server.stop(3); } })); }
public static void main(String[] args) { String formatstr = "ws [--in][--out][--dd][--sw][-h]"; Options opt = new Options(); // opt.addOption(OptionBuilder.withArgName("in").hasArg().withDescription("search for buildfile // towards the root of the filesystem and use it").create("O")); opt.addOption( OptionBuilder.withLongOpt("in") .withDescription("file path of those files need to be processed") .withValueSeparator('=') .hasArg() .create()); opt.addOption( OptionBuilder.withLongOpt("out") .withDescription("file path to store result") .withValueSeparator('=') .hasArg() .create()); opt.addOption( OptionBuilder.withLongOpt("dd") .withDescription("file path of dictionary") .withValueSeparator('=') .hasArg() .create()); opt.addOption( OptionBuilder.withLongOpt("sw") .withDescription("file path of stop words") .withValueSeparator('=') .hasArg() .create()); opt.addOption("h", "help", false, "print help for the command."); if (args.length == 0) { HelpFormatter hf = new HelpFormatter(); hf.printHelp(formatstr, "", opt, ""); return; } else { parse_args(args, formatstr, opt); } }
public static void main(String[] args) { Options options = new Options(); options.addOption("v", true, "Input Vector folder"); // yearly vector data options.addOption("p", true, "Points folder"); // yearly mds (rotate) output options.addOption("d", true, "Destination folder"); options.addOption("o", true, "Original stock file"); // global 10 year stock file options.addOption( "s", true, "Sector file"); // If Histogram true then set this as the folder to histogram output options.addOption("h", false, "Gen from histogram"); options.addOption("e", true, "Extra classes file"); // a file containing fixed classes options.addOption("ci", true, "Cluster input file"); options.addOption("co", true, "Cluster output file"); CommandLineParser commandLineParser = new BasicParser(); try { CommandLine cmd = commandLineParser.parse(options, args); String vectorFile = cmd.getOptionValue("v"); String pointsFolder = cmd.getOptionValue("p"); String distFolder = cmd.getOptionValue("d"); String originalStocks = cmd.getOptionValue("o"); String sectorFile = cmd.getOptionValue("s"); boolean histogram = cmd.hasOption("h"); String fixedClasses = cmd.getOptionValue("e"); String clusterInputFile = cmd.getOptionValue("ci"); String clusterOutputFile = cmd.getOptionValue("co"); LabelApply program = new LabelApply( vectorFile, pointsFolder, distFolder, originalStocks, sectorFile, histogram, fixedClasses, clusterInputFile, clusterOutputFile); program.process(); } catch (ParseException e) { e.printStackTrace(); } }
static { Config.setClientMode(true); Option optKey = new Option(KEY_OPTION, true, "Partition key"); // Number of times -k <key> can be passed on the command line. optKey.setArgs(500); options.addOption(optKey); Option excludeKey = new Option(EXCLUDE_KEY_OPTION, true, "Excluded partition key"); // Number of times -x <key> can be passed on the command line. excludeKey.setArgs(500); options.addOption(excludeKey); Option optEnumerate = new Option(ENUMERATE_KEYS_OPTION, false, "enumerate partition keys only"); options.addOption(optEnumerate); Option debugOutput = new Option(DEBUG_OUTPUT_OPTION, false, "CQL row per line internal representation"); options.addOption(debugOutput); Option rawTimestamps = new Option(RAW_TIMESTAMPS, false, "Print raw timestamps instead of iso8601 date strings"); options.addOption(rawTimestamps); }
private void parseCmdLine(String[] args) { CommandLineParser parser = new PosixParser(); Options options = new Options(); options.addOption("v", "version", false, "Q2's version"); options.addOption("d", "deploydir", true, "Deployment directory"); options.addOption("r", "recursive", false, "Deploy subdirectories recursively"); options.addOption("h", "help", false, "Usage information"); options.addOption("C", "config", true, "Configuration bundle"); options.addOption("e", "encrypt", true, "Encrypt configuration bundle"); options.addOption("i", "cli", false, "Command Line Interface"); options.addOption("c", "command", true, "Command to execute"); try { CommandLine line = parser.parse(options, args); if (line.hasOption("v")) { displayVersion(); System.exit(0); } if (line.hasOption("h")) { HelpFormatter helpFormatter = new HelpFormatter(); helpFormatter.printHelp("Q2", options); System.exit(0); } if (line.hasOption("c")) { cli = new CLI(this, line.getOptionValue("c"), line.hasOption("i")); } else if (line.hasOption("i")) cli = new CLI(this, null, true); String dir = DEFAULT_DEPLOY_DIR; if (line.hasOption("d")) { dir = line.getOptionValue("d"); } recursive = line.hasOption("r"); this.deployDir = new File(dir); if (line.hasOption("C")) deployBundle(new File(line.getOptionValue("C")), false); if (line.hasOption("e")) deployBundle(new File(line.getOptionValue("e")), true); } catch (MissingArgumentException e) { System.out.println("ERROR: " + e.getMessage()); System.exit(1); } catch (Exception e) { e.printStackTrace(); System.exit(1); } }
public static Options createCLIOptions() { Options options = new Options(); options.addOption("a", false, "use Aliases"); Option solrServerName = OptionBuilder.withArgName("solrServer") .hasArg() .withDescription("Server to query. ex: solrhost:4080") .create("s"); Option searchTermName = OptionBuilder.withArgName("termValue") .hasArg() .withDescription("search term to use as input, use either term or f1 argument") .create("term"); Option inputFileName = OptionBuilder.withArgName("inputFile") .hasArg() .withDescription("input filename for term1 values") .create("f1"); Option inputFileName2 = OptionBuilder.withArgName("inputFile2") .hasArg() .withDescription("input filename for term2 values") .create("f2"); Option outputFileName = OptionBuilder.withArgName("outputFile") .hasArg() .withDescription("output filename") .create("o"); Option keepListName = OptionBuilder.withArgName("keepGrayList") .hasArg() .withDescription("gray list with 'keep' terms") .create("k"); Option filterListName = OptionBuilder.withArgName("filterGrayList") .hasArg() .withDescription("gray list with 'filter' terms") .create("r"); options.addOption(solrServerName); options.addOption(searchTermName); options.addOption(inputFileName); options.addOption(inputFileName2); options.addOption(outputFileName); options.addOption(keepListName); options.addOption(filterListName); return options; }
/* *main function */ public static void main(String args[]) { String title1 = " "; String publisher_name1 = " "; String published_date1 = ""; String content1 = ""; int n = 0; String str = ""; // try block starts here try { Options option = new Options(); option.addOption("hp", false, "help"); option.addOption("hlp", false, "help"); CommandLineParser parser = new DefaultParser(); CommandLine cmd = parser.parse(option, args); // str=cmd.getArgs()[0]; /*prints the help message here*/ if ((cmd.hasOption("hp")) || (cmd.hasOption("hlp"))) { System.out.println( "this program gets an argument through commandline 'n' number of books. then reads n books from standard input" + "and prints them on standard output"); if (args.length <= 1) { // exit the program System.exit(0); } } // close outer if block else { if (args.length < 1) { // if user not gives option and value of n then prints this message. System.out.println( "this program gets an argument through commandline 'n' number of books. then reads n books from standard input" + "and prints them on standard output"); System.exit(0); } } // close the outer else block str = cmd.getArgs()[0]; n = Integer.parseInt(str); } catch (Exception e) { // System.exit(0); // if any erroy occurs it catches here System.out.println(e); } int num = 0; Scanner sc1 = new Scanner(System.in); /*create an instance of scanner object*/ Scanner sc = new Scanner(System.in); CmdBook b[] = new CmdBook[n]; /* create arraylist of objects of class Book*/ for (int i = 0; i < n; i++) { // initialise the array of objects b[i] = new CmdBook(); } for (int i = 0; i < n; i++) { /* take input from standard input*/ System.out.println("enter the title of the book:"); title1 = sc.next(); System.out.println("enter the name of publisher"); publisher_name1 = sc.next(); System.out.println("enter published date"); published_date1 = sc.next(); System.out.println("how many authors are"); num = sc1.nextInt(); ArrayList<String> author_name1 = new ArrayList<String>(); /*create an ArrayList author_name1 */ for (int j = 0; j < num; j++) { /*take input */ System.out.println("enter authorname" + (j + 1)); author_name1.add(sc.next()); } System.out.println("enter contents of book:"); content1 = sc.next(); /* call the method bookdetail with auguments which contains from * standard input */ b[i].bookdetail(title1, publisher_name1, published_date1, content1, author_name1); } for (int i = 0; i < n; i++) { /*call the methode printbook withe no aurgument*/ b[i].printbook(); } } /*end of main function here*/
@SuppressWarnings({"AccessStaticViaInstance"}) public static Options createCompilationOptions() { // // Parse the command line Options options = new Options(); options.addOption( OptionBuilder.hasArg() .withArgName("path") .withDescription("Specify where to find the class files - must be first argument") .create("classpath")); options.addOption( OptionBuilder.withLongOpt("classpath") .hasArg() .withArgName("path") .withDescription("Aliases for '-classpath'") .create("cp")); options.addOption( OptionBuilder.withLongOpt("sourcepath") .hasArg() .withArgName("path") .withDescription("Specify where to find the source files") .create()); options.addOption( OptionBuilder.withLongOpt("temp") .hasArg() .withArgName("temp") .withDescription("Specify temporary directory") .create()); options.addOption( OptionBuilder.withLongOpt("encoding") .hasArg() .withArgName("encoding") .withDescription("Specify the encoding of the user class files") .create()); options.addOption( OptionBuilder.hasArg() .withDescription("Specify where to place generated class files") .create('d')); // options.addOption(OptionBuilder.withLongOpt("strict").withDescription("Turn on // strict type safety.").create('s')); options.addOption( OptionBuilder.withLongOpt("help") .withDescription("Print a synopsis of standard options") .create('h')); options.addOption( OptionBuilder.withLongOpt("version").withDescription("Print the version").create('v')); options.addOption( OptionBuilder.withLongOpt("exception") .withDescription("Print stack trace on error") .create('e')); options.addOption( OptionBuilder.withLongOpt("jointCompilation") .withDescription("Attach javac compiler to compile .java files") .create('j')); options.addOption( OptionBuilder.withLongOpt("basescript") .hasArg() .withArgName("class") .withDescription("Base class name for scripts (must derive from Script)") .create('b')); options.addOption( OptionBuilder.withArgName("property=value") .withValueSeparator() .hasArgs(2) .withDescription("name-value pairs to pass to javac") .create("J")); options.addOption( OptionBuilder.withArgName("flag") .hasArg() .withDescription("passed to javac for joint compilation") .create("F")); options.addOption( OptionBuilder.withLongOpt("indy") .withDescription("enables compilation using invokedynamic") .create()); options.addOption( OptionBuilder.withLongOpt("configscript") .hasArg() .withDescription("A script for tweaking the configuration options") .create()); return options; }
public static void main(String[] args) { String logConfig = System.getProperty("log-config"); if (logConfig == null) { logConfig = "log-config.txt"; } Options options = new Options(); options.addOption("h", "help", false, "print this message"); options.addOption("v", "version", false, "output version information and exit"); options.addOption(OptionBuilder.withDescription("trace mode").withLongOpt("trace").create()); options.addOption(OptionBuilder.withDescription("debug mode").withLongOpt("debug").create()); options.addOption(OptionBuilder.withDescription("info mode").withLongOpt("info").create()); options.addOption( OptionBuilder.withArgName("file") .hasArg() .withDescription( "file from which to read the labelled training set in tabular format (reference annotation)") .isRequired() .withLongOpt("labelled") .create("l")); options.addOption( OptionBuilder.withArgName("file") .hasArg() .withDescription( "file from which to read the translated unlabelled training set in tabular format (one sentence per line, including id)") .isRequired() .withLongOpt("unlabelled") .create("u")); options.addOption( OptionBuilder.withArgName("file") .hasArg() .withDescription( "file from which to read the translated roles (phrase table: source language \\t target language)") .isRequired() .withLongOpt("roles") .create("r")); options.addOption( OptionBuilder.withArgName("file") .hasArg() .withDescription( "file in which to write the translated labelled training set in tabular format (aligned with the reference annotation)") .isRequired() .withLongOpt("output") .create("o")); options.addOption( OptionBuilder.withArgName("int") .hasArg() .withDescription("example from which to start from") .withLongOpt("start") .create()); CommandLineParser parser = new PosixParser(); CommandLine commandLine = null; try { commandLine = parser.parse(options, args); Properties defaultProps = new Properties(); try { defaultProps.load(new InputStreamReader(new FileInputStream(logConfig), "UTF-8")); } catch (Exception e) { defaultProps.setProperty("log4j.appender.stdout", "org.apache.log4j.ConsoleAppender"); defaultProps.setProperty( "log4j.appender.stdout.layout.ConversionPattern", "[%t] %-5p (%F:%L) - %m %n"); defaultProps.setProperty("log4j.appender.stdout.layout", "org.apache.log4j.PatternLayout"); defaultProps.setProperty("log4j.appender.stdout.Encoding", "UTF-8"); } if (commandLine.hasOption("trace")) { defaultProps.setProperty("log4j.rootLogger", "trace,stdout"); } else if (commandLine.hasOption("debug")) { defaultProps.setProperty("log4j.rootLogger", "debug,stdout"); } else if (commandLine.hasOption("info")) { defaultProps.setProperty("log4j.rootLogger", "info,stdout"); } else { if (defaultProps.getProperty("log4j.rootLogger") == null) { defaultProps.setProperty("log4j.rootLogger", "info,stdout"); } } PropertyConfigurator.configure(defaultProps); if (commandLine.hasOption("help") || commandLine.hasOption("version")) { throw new ParseException(""); } File labelled = new File(commandLine.getOptionValue("labelled")); File unlabelled = new File(commandLine.getOptionValue("unlabelled")); File roles = new File(commandLine.getOptionValue("roles")); File output = new File(commandLine.getOptionValue("output")); try { if (commandLine.hasOption("start")) { int start = Integer.parseInt(commandLine.getOptionValue("start")); new AnnotationMigration(labelled, unlabelled, roles, output, start); } else { new AnnotationMigration(labelled, unlabelled, roles, output); } } catch (IOException e) { logger.error(e); } } catch (ParseException exp) { if (exp.getMessage().length() > 0) { System.err.println("Parsing failed: " + exp.getMessage() + "\n"); } HelpFormatter formatter = new HelpFormatter(); formatter.printHelp( 200, "java -Dfile.encoding=UTF-8 -cp dist/dirha.jar org.fbk.cit.hlt.dirha.AnnotationMigration", "\n", options, "\n", true); System.exit(1); } }
public static void main(String[] args) throws Exception { boolean isInteractive = false; classUrl = MynaInstaller.class.getResource("MynaInstaller.class").toString(); isJar = (classUrl.indexOf("jar") == 0); if (!isJar) { System.err.println("Installer can only be run from inside a Myna distribution war file"); System.exit(1); } Thread.sleep(1000); Console console = System.console(); String response = null; CommandLineParser parser = new PosixParser(); // create the Options Options options = new Options(); options.addOption( "c", "context", true, "Webapp context. Must Start with \"/\" Default: " + webctx); options.addOption("h", "help", false, "Displays help."); options.addOption( "w", "webroot", true, "Webroot to use. Will be created if webroot/WEB-INF does not exist. Default: " + webroot); options.addOption( "l", "logfile", true, "Log file to use. Will be created if it does not exist. Default: ./<context>.log"); options.addOption( "s", "servername", true, "Name of this instance. Will also be the name of the init script. Defaults to either \"myna\" or the value of <context> if defined"); // options.addOption( "P", "purpose", true, "Purpose of the Server, such as DEV,PROD,TRAIN, etc. // Defaults to DEV" ); options.addOption("p", "port", true, "HTTP port. Set to 0 to disable HTTP. Default: " + port); options.addOption( "sp", "ssl-port", true, "SSL (HTTPS) port. Set to 0 to disable SSL, Default: 0"); options.addOption( "ks", "keystore", true, "keystore path. Default: <webroot>/WEB-INF/myna/myna_keystore"); options.addOption("ksp", "ks-pass", true, "keystore password. Default: " + ksPass); options.addOption("ksa", "ks-alias", true, "certificate alias. Default: " + ksAlias); modeOptions.add("upgrade"); modeOptions.add("install"); options.addOption( "m", "mode", true, "Mode: one of " + modeOptions.toString() + ". \n" + "\"upgrade\": Upgrades myna installation in webroot and exits. " + "\"install\": Unpacks to webroot, and installs startup files"); options.addOption( "u", "user", true, "User to own and run the Myna installation. Only applies to unix installs. Default: nobody"); HelpFormatter formatter = new HelpFormatter(); String cmdSyntax = "java -jar myna-X.war -m <mode> [options]"; try { CommandLine line = parser.parse(options, args); Option option; if (args.length == 0) { formatter.printHelp(cmdSyntax, options); response = console.readLine("\nContinue with Interactive Install? (y/N)"); if (response.toLowerCase().equals("y")) { isInteractive = true; } else System.exit(1); } // Help if (line.hasOption("help")) { formatter.printHelp(cmdSyntax, options); System.exit(1); } // mode if (line.hasOption("mode")) { mode = line.getOptionValue("mode"); if (!modeOptions.contains(mode)) { System.err.println( "Invalid Arguments. Reason: Mode must be in " + modeOptions.toString()); formatter.printHelp(cmdSyntax, options); System.exit(1); } } else if (isInteractive) { option = options.getOption("mode"); console.printf("\n" + option.getDescription()); do { response = console.readLine("\nEnter " + option.getLongOpt() + "(" + mode + "): "); if (!response.isEmpty()) mode = response; } while (!modeOptions.contains(mode)); } // webroot if (line.hasOption("webroot")) { webroot = line.getOptionValue("webroot"); } else if (isInteractive) { option = options.getOption("webroot"); console.printf("\n" + option.getDescription()); response = console.readLine("\nEnter " + option.getLongOpt() + "(" + webroot + "): "); if (!response.isEmpty()) webroot = response; } // port if (line.hasOption("port")) { port = Integer.parseInt(line.getOptionValue("port")); } else if (isInteractive && mode.equals("install")) { option = options.getOption("port"); console.printf("\n" + option.getDescription()); response = console.readLine("\nEnter " + option.getLongOpt() + "(" + port + "): "); if (!response.isEmpty()) port = Integer.parseInt(response); } // context if (line.hasOption("context")) { webctx = line.getOptionValue("context"); } else if (isInteractive && mode.equals("install")) { option = options.getOption("context"); console.printf("\n" + option.getDescription()); response = console.readLine("\nEnter " + option.getLongOpt() + "(" + webctx + "): "); if (!response.isEmpty()) webctx = response; } if (!webctx.startsWith("/")) { webctx = "/" + webctx; } // servername (depends on context) if (!webctx.equals("/")) { serverName = webctx.substring(1); } if (line.hasOption("servername")) { serverName = line.getOptionValue("servername"); } else if (isInteractive && mode.equals("install")) { option = options.getOption("servername"); console.printf("\n" + option.getDescription()); response = console.readLine("\nEnter " + option.getLongOpt() + "(" + serverName + "): "); if (!response.isEmpty()) serverName = response; } // user if (line.hasOption("user")) { user = line.getOptionValue("user"); } else if (isInteractive && mode.equals("install")) { option = options.getOption("user"); console.printf("\n" + option.getDescription()); response = console.readLine("\nEnter " + option.getLongOpt() + "(" + user + "): "); if (!response.isEmpty()) user = response; } // logfile logFile = "myna.log"; if (!webctx.equals("/")) { logFile = webctx.substring(1) + ".log"; } if (line.hasOption("logfile")) { logFile = line.getOptionValue("logfile"); } else if (isInteractive && mode.equals("install")) { option = options.getOption("logfile"); console.printf("\n" + option.getDescription()); response = console.readLine("\nEnter " + option.getLongOpt() + "path(" + logFile + "): "); if (!response.isEmpty()) logFile = response; } // ssl-port if (line.hasOption("ssl-port")) { sslPort = Integer.parseInt(line.getOptionValue("ssl-port")); } else if (isInteractive && mode.equals("install")) { option = options.getOption("ssl-port"); console.printf("\n" + option.getDescription()); response = console.readLine("\nEnter " + option.getLongOpt() + "(" + sslPort + "): "); if (!response.isEmpty()) sslPort = Integer.parseInt(response); } // ks-pass if (line.hasOption("ks-pass")) { ksPass = line.getOptionValue("ks-pass"); } else if (isInteractive && mode.equals("install")) { option = options.getOption("ks-pass"); console.printf("\n" + option.getDescription()); response = console.readLine("\nEnter " + option.getLongOpt() + "(" + ksPass + "): "); if (!response.isEmpty()) ksPass = response; } // ks-alias if (line.hasOption("ks-alias")) { ksAlias = line.getOptionValue("ks-alias"); } else if (isInteractive && mode.equals("install")) { option = options.getOption("ks-alias"); console.printf("\n" + option.getDescription()); response = console.readLine("\nEnter " + option.getLongOpt() + "(" + ksAlias + "): "); if (!response.isEmpty()) ksAlias = response; } // keystore String appBase = new File(webroot).getCanonicalPath(); if (keystore == null) { keystore = appBase + "/WEB-INF/myna/myna_keystore"; } if (line.hasOption("keystore")) { keystore = line.getOptionValue("keystore"); } else if (isInteractive && mode.equals("install")) { option = options.getOption("keystore"); console.printf("\n" + option.getDescription()); response = console.readLine("\nEnter " + option.getLongOpt() + "(" + keystore + "): "); if (!response.isEmpty()) keystore = response; } javaOpts = line.getArgList(); } catch (ParseException exp) { System.err.println("Invalid Arguments. Reason: " + exp.getMessage()); formatter.printHelp(cmdSyntax, options); System.exit(1); } if (isInteractive) { System.out.println("\nProceeed with the following settings?:\n"); System.out.println("mode = " + mode); System.out.println("webroot = " + webroot); if (mode.equals("install")) { System.out.println("port = " + port); System.out.println("context = " + webctx); System.out.println("servername = " + serverName); System.out.println("user = "******"logfile = " + logFile); System.out.println("ssl-port = " + sslPort); System.out.println("ks-pass = "******"ks-alias = " + ksAlias); System.out.println("keystore = " + keystore); } response = console.readLine("Continue? (Y/n)"); if (response.toLowerCase().equals("n")) System.exit(1); } File wrFile = new File(webroot); webroot = wrFile.toString(); if (mode.equals("install")) { adminPassword = console.readLine("\nCreate an Admin password for this installation: "); } // unpack myna if necessary if (!wrFile.exists() || mode.equals("upgrade") || mode.equals("install")) { upgrade(wrFile); } if (mode.equals("install")) { File propertiesFile = new File(wrFile.toURI().resolve("WEB-INF/classes/general.properties")); FileInputStream propertiesFileIS = new FileInputStream(propertiesFile); Properties generalProperties = new Properties(); generalProperties.load(propertiesFileIS); propertiesFileIS.close(); if (!adminPassword.isEmpty()) { org.jasypt.util.password.StrongPasswordEncryptor cryptTool = new org.jasypt.util.password.StrongPasswordEncryptor(); generalProperties.setProperty("admin_password", cryptTool.encryptPassword(adminPassword)); } generalProperties.setProperty("instance_id", serverName); generalProperties.store( new java.io.FileOutputStream(propertiesFile), "Myna General Properties"); String javaHome = System.getProperty("java.home"); webroot = new File(webroot).getCanonicalPath(); if (serverName.length() == 0) serverName = "myna"; if (java.lang.System.getProperty("os.name").toLowerCase().indexOf("win") >= 0) { if (!new File(logFile).isAbsolute()) { logFile = new File(wrFile.toURI().resolve("WEB-INF/" + logFile)).toString(); } File templateFile = new File( wrFile.toURI().resolve("WEB-INF/myna/install/windows/update_myna_service.cmd")); String initScript = FileUtils.readFileToString(templateFile) .replaceAll("\\{webctx\\}", webctx) .replaceAll("\\{server\\}", Matcher.quoteReplacement(serverName)) .replaceAll("\\{webroot\\}", Matcher.quoteReplacement(webroot)) .replaceAll("\\{logfile\\}", Matcher.quoteReplacement(logFile)) .replaceAll("\\{javahome\\}", Matcher.quoteReplacement(javaHome)) .replaceAll("\\{port\\}", new Integer(port).toString()) .replaceAll("\\{sslPort\\}", new Integer(sslPort).toString()) .replaceAll("\\{keystore\\}", Matcher.quoteReplacement(keystore)) .replaceAll("\\{ksPass\\}", Matcher.quoteReplacement(ksPass)) .replaceAll("\\{ksAlias\\}", Matcher.quoteReplacement(ksAlias)); File scriptFile = new File(wrFile.toURI().resolve("WEB-INF/myna/install/update_myna_service.cmd")); FileUtils.writeStringToFile(scriptFile, initScript); // Runtime.getRuntime().exec("cmd /c start " + scriptFile.toString()).waitFor(); System.out.println( "\nInstalled Service 'Myna App Server " + serverName + "' the following settings:\n"); System.out.println( "\nInit script '" + scriptFile + "' created with the following settings:\n"); System.out.println("memory=256MB"); System.out.println("serverName=" + serverName); System.out.println("javaHome=" + javaHome); System.out.println("context=" + webctx); System.out.println("port=" + port); System.out.println("myna_home=" + webroot); System.out.println("logfile=" + logFile); System.out.println("sslPort=" + sslPort); System.out.println("keyStore=" + keystore); System.out.println("ksPass="******"ksAlias=" + ksAlias); System.out.println( "\nEdit and and run the command file in " + scriptFile + " to update this service"); } else { String curUser = java.lang.System.getProperty("user.name"); if (!curUser.equals("root")) { System.out.println("Install mode must be run as root."); System.exit(1); } if (!new File(logFile).isAbsolute()) { logFile = new File(wrFile.toURI().resolve("WEB-INF/" + logFile)).toString(); } File templateFile = new File(wrFile.toURI().resolve("WEB-INF/myna/install/linux/init_script")); String initScript = FileUtils.readFileToString(templateFile) .replaceAll("\\{webctx\\}", webctx) .replaceAll("\\{server\\}", serverName) .replaceAll("\\{user\\}", user) .replaceAll("\\{webroot\\}", webroot) .replaceAll("\\{javahome\\}", javaHome) .replaceAll("\\{logfile\\}", logFile) .replaceAll("\\{port\\}", new Integer(port).toString()) .replaceAll("\\{sslPort\\}", new Integer(sslPort).toString()) .replaceAll("\\{keystore\\}", keystore) .replaceAll("\\{ksPass\\}", ksPass) .replaceAll("\\{ksAlias\\}", ksAlias); File scriptFile = new File(wrFile.toURI().resolve("WEB-INF/myna/install/" + serverName)); FileUtils.writeStringToFile(scriptFile, initScript); if (new File("/etc/init.d").exists()) { exec("chown -R " + user + " " + webroot); exec("chown root " + scriptFile.toString()); exec("chmod 700 " + scriptFile.toString()); exec("cp " + scriptFile.toString() + " /etc/init.d/"); System.out.println( "\nInit script '/etc/init.d/" + serverName + "' created with the following settings:\n"); } else { System.out.println( "\nInit script '" + scriptFile + "' created with the following settings:\n"); } System.out.println("user="******"memory=256MB"); System.out.println("server=" + serverName); System.out.println("context=" + webctx); System.out.println("port=" + port); System.out.println("myna_home=" + webroot); System.out.println("logfile=" + logFile); System.out.println("sslPort=" + sslPort); System.out.println("keyStore=" + keystore); System.out.println("ksPass="******"ksAlias=" + ksAlias); System.out.println("\nEdit this file to customize startup behavior"); } } }