--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jdk.packager/share/classes/jdk/packager/main/Main.java Wed Oct 17 13:50:11 2018 -0400
@@ -0,0 +1,113 @@
+/*
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk.packager.main;
+
+import jdk.packager.internal.Arguments;
+import jdk.packager.internal.Log;
+import jdk.packager.internal.CLIHelp;
+import java.io.PrintWriter;
+import java.util.ResourceBundle;
+
+public class Main {
+
+ private static final ResourceBundle bundle =
+ ResourceBundle.getBundle("jdk.packager.internal.resources.Bundle");
+
+ private static final String version = bundle.getString("MSG_Version")
+ + " " + System.getProperty("java.version") + "\n";
+
+ /**
+ * main(String... args)
+ * This is the entry point for the jpackager tool.
+ *
+ * @param args command line arguments
+ */
+ public static void main(String... args) throws Exception {
+ // Create logger with default system.out and system.err
+ Log.Logger logger = new Log.Logger(false);
+ Log.setLogger(logger);
+
+ int status = run(args);
+ System.exit(status);
+ }
+
+ /**
+ * run() - this is the entry point for the ToolProvider API.
+ *
+ * @param out output stream
+ * @param err error output stream
+ * @param args command line arguments
+ * @return an exit code. 0 means success, non-zero means an error occurred.
+ */
+ public static int run(PrintWriter out, PrintWriter err, String... args)
+ throws Exception {
+ // Create logger with provided streams
+ Log.Logger logger = new Log.Logger(false);
+ logger.setPrintWriter(out, err);
+ Log.setLogger(logger);
+
+ int status = run(args);
+ Log.flush();
+ return status;
+ }
+
+ private static int run(String... args) throws Exception {
+ if (args.length == 0) {
+ CLIHelp.showHelp(true);
+ } else if (hasHelp(args)){
+ CLIHelp.showHelp(false);
+ } else if (args.length == 1 && args[0].equals("--version")) {
+ Log.info(version);
+ } else {
+ try {
+ Arguments arguments = new Arguments(args);
+ arguments.processArguments();
+ } catch (Exception e) {
+ if (Arguments.verbose()) {
+ Log.verbose(e);
+ } else {
+ Log.error(e.getMessage());
+ if (e.getCause() != null && e.getCause() != e) {
+ Log.error(e.getCause().getMessage());
+ }
+ }
+ return -1;
+ }
+ }
+
+ return 0;
+ }
+
+ private static boolean hasHelp(String[] args) {
+ for (String a : args) {
+ if ("--help".equals(a) || "-h".equals(a)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+}