1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/Main.java Thu Apr 25 16:17:48 2013 +0200
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/Main.java Fri Apr 26 18:48:34 2013 +0200
1.3 @@ -39,10 +39,11 @@
1.4
1.5 public static void main(String... args) throws IOException, URISyntaxException {
1.6 final String obfuscate = "--obfuscatelevel";
1.7 -
1.8 + final String extension = "--createextension";
1.9 +
1.10 if (args.length < 2) {
1.11 System.err.println("Bck2Brwsr Translator from Java(tm) to JavaScript, (c) Jaroslav Tulach 2012");
1.12 - System.err.println("Usage: java -cp ... -jar ... [");
1.13 + System.err.print("Usage: java -cp ... -jar ... [");
1.14 System.err.print(obfuscate);
1.15 System.err.print(" [");
1.16 boolean first = true;
1.17 @@ -53,7 +54,8 @@
1.18 System.err.print(l.name());
1.19 first = false;
1.20 }
1.21 -
1.22 + System.err.print("]] [");
1.23 + System.err.print(extension);
1.24 System.err.println("] <file_to_generate_js_code_to> java/lang/Class org/your/App ...");
1.25 System.exit(9);
1.26 }
1.27 @@ -61,6 +63,7 @@
1.28 final ClassLoader mainClassLoader = Main.class.getClassLoader();
1.29
1.30 ObfuscationLevel obfLevel = ObfuscationLevel.NONE;
1.31 + boolean createExtension = false;
1.32 StringArray classes = new StringArray();
1.33 String generateTo = null;
1.34 for (int i = 0; i < args.length; i++) {
1.35 @@ -84,17 +87,30 @@
1.36 }
1.37 continue;
1.38 }
1.39 + if (extension.equals(args[i])) { // NOI18N
1.40 + createExtension = true;
1.41 + continue;
1.42 + }
1.43 if (generateTo == null) {
1.44 generateTo = args[i];
1.45 } else {
1.46 collectClasses(classes, mainClassLoader, args[i]);
1.47 }
1.48 }
1.49 - try (Writer w = new BufferedWriter(new FileWriter(generateTo))) {
1.50 + final File outputFile = new File(generateTo);
1.51 + String moduleName = null;
1.52 + if (createExtension) {
1.53 + moduleName = outputFile.getName();
1.54 + if (moduleName.endsWith(".js")) {
1.55 + moduleName = moduleName.substring(0, moduleName.length() - 3);
1.56 + }
1.57 + }
1.58 + try (Writer w = new BufferedWriter(new FileWriter(outputFile))) {
1.59 Bck2Brwsr.newCompiler().
1.60 + extension(createExtension).
1.61 obfuscation(obfLevel).
1.62 addRootClasses(classes.toArray()).
1.63 - resources(mainClassLoader).
1.64 + resources(new LdrRsrcs(moduleName, mainClassLoader)).
1.65 generate(w);
1.66 }
1.67 }