< prev index next >

src/jdk.jextract/share/classes/com/sun/tools/jextract/Main.java

Print this page

        

*** 25,34 **** --- 25,35 ---- import jdk.internal.joptsimple.OptionException; import jdk.internal.joptsimple.OptionParser; import jdk.internal.joptsimple.OptionSet; import jdk.internal.joptsimple.util.KeyValuePair; + import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.text.MessageFormat;
*** 102,135 **** logger.setLevel(level); log.setLevel(level); logger.addHandler(log); } ! private void printHelpAndExit(OptionParser parser) { try { parser.printHelpOn(System.err); } catch (IOException ex) { if (Main.DEBUG) { ex.printStackTrace(System.err); } } - System.exit(1); } ! public void run(String[] args) { OptionParser parser = new OptionParser(); parser.accepts("dry-run", format("help.dry_run")); parser.accepts("I", format("help.I")).withRequiredArg(); parser.accepts("L", format("help.L")).withRequiredArg(); parser.accepts("l", format("help.l")).withRequiredArg(); parser.accepts("o", format("help.o")).withRequiredArg(); parser.accepts("t", format("help.t")).withRequiredArg(); parser.accepts("m", format("help.m")).withRequiredArg(); parser.accepts("h", format("help.h")).forHelp(); parser.accepts("help", format("help.h")).forHelp(); parser.accepts("C", format("help.C")).withRequiredArg(); parser.accepts("log", format("help.log")).withRequiredArg(); parser.accepts("?", format("help.h")).forHelp(); parser.nonOptions(format("help.non.option")); OptionSet options = null; try { --- 103,139 ---- logger.setLevel(level); log.setLevel(level); logger.addHandler(log); } ! private void printHelp(OptionParser parser) { try { parser.printHelpOn(System.err); } catch (IOException ex) { if (Main.DEBUG) { ex.printStackTrace(System.err); } } } ! public int run(String[] args) { OptionParser parser = new OptionParser(); parser.accepts("dry-run", format("help.dry_run")); parser.accepts("I", format("help.I")).withRequiredArg(); + // FIXME: -L not yet implemented. This 'jextract time' + // option is expected to specify paths to load shared libraries + // to check & warn missing symbols. parser.accepts("L", format("help.L")).withRequiredArg(); parser.accepts("l", format("help.l")).withRequiredArg(); parser.accepts("o", format("help.o")).withRequiredArg(); parser.accepts("t", format("help.t")).withRequiredArg(); parser.accepts("m", format("help.m")).withRequiredArg(); parser.accepts("h", format("help.h")).forHelp(); parser.accepts("help", format("help.h")).forHelp(); parser.accepts("C", format("help.C")).withRequiredArg(); parser.accepts("log", format("help.log")).withRequiredArg(); + parser.accepts("rpath", format("help.rpath")).withRequiredArg(); parser.accepts("?", format("help.h")).forHelp(); parser.nonOptions(format("help.non.option")); OptionSet options = null; try {
*** 137,151 **** } catch (OptionException oe) { System.err.println(oe.getMessage()); if (Main.DEBUG) { oe.printStackTrace(System.err); } ! printHelpAndExit(parser); } if (args.length == 0 || options.has("h") || options.has("?") || options.has("help")) { ! printHelpAndExit(parser); } if (options.has("log")) { setupLogging(Level.parse((String) options.valueOf("log"))); } else { --- 141,157 ---- } catch (OptionException oe) { System.err.println(oe.getMessage()); if (Main.DEBUG) { oe.printStackTrace(System.err); } ! printHelp(parser); ! return 1; } if (args.length == 0 || options.has("h") || options.has("?") || options.has("help")) { ! printHelp(parser); ! return 1; } if (options.has("log")) { setupLogging(Level.parse((String) options.valueOf("log"))); } else {
*** 159,169 **** if (options.has("C")) { options.valuesOf("C").forEach(p -> ctx.clangArgs.add((String) p)); } if (options.has("l")) { ! options.valuesOf("l").forEach(p -> ctx.libraries.add((String) p)); } targetPackage = options.has("t") ? (String) options.valueOf("t") : ""; if (!targetPackage.isEmpty()) { Validators.validPackageName(targetPackage); --- 165,193 ---- if (options.has("C")) { options.valuesOf("C").forEach(p -> ctx.clangArgs.add((String) p)); } if (options.has("l")) { ! try { ! options.valuesOf("l").forEach(p -> { ! String lib = (String)p; ! if (lib.indexOf(File.separatorChar) != -1) { ! throw new IllegalArgumentException(format("l.name.should.not.be.path", lib)); ! } ! ctx.libraries.add(lib); ! }); ! } catch (IllegalArgumentException iae) { ! System.err.println(iae.getMessage()); ! if (Main.DEBUG) { ! iae.printStackTrace(System.err); ! } ! return 1; ! } ! } ! ! if (options.has("rpath")) { ! options.valuesOf("rpath").forEach(p -> ctx.libraryPaths.add((String) p)); } targetPackage = options.has("t") ? (String) options.valueOf("t") : ""; if (!targetPackage.isEmpty()) { Validators.validPackageName(targetPackage);
*** 179,193 **** } catch (RuntimeException re) { System.err.println(re.getMessage()); if (Main.DEBUG) { re.printStackTrace(System.err); } ! System.exit(2); } if (options.has("dry-run")) { ! System.exit(0); } String outputName = options.has("o")? (String)options.valueOf("o") : options.nonOptionArguments().get(0) + ".jar"; Path jar = Paths.get(outputName); --- 203,217 ---- } catch (RuntimeException re) { System.err.println(re.getMessage()); if (Main.DEBUG) { re.printStackTrace(System.err); } ! return 2; } if (options.has("dry-run")) { ! return 0; } String outputName = options.has("o")? (String)options.valueOf("o") : options.nonOptionArguments().get(0) + ".jar"; Path jar = Paths.get(outputName);
*** 196,211 **** } catch (IOException ex) { System.err.println(format("cannot.write.jar.file", jar, ex)); if (Main.DEBUG) { ex.printStackTrace(System.err); } ! System.exit(3); } } public static void main(String... args) { Main instance = new Main(Context.getInstance()); ! instance.run(args); } } --- 220,237 ---- } catch (IOException ex) { System.err.println(format("cannot.write.jar.file", jar, ex)); if (Main.DEBUG) { ex.printStackTrace(System.err); } ! return 3; } + + return 0; } public static void main(String... args) { Main instance = new Main(Context.getInstance()); ! System.exit(instance.run(args)); } }
< prev index next >