JSDOC/PackerRun.vala
[gnome.introspection-doc-generator] / JSDOC / PackerRun.vala
index e69de29..de70596 100644 (file)
@@ -0,0 +1,89 @@
+
+/** 
+  the application
+  -- in theory this code  can be used as a library... but this is the standard command line version...
+*/
+
+namespace JSDOC
+{
+       // --------------- <<<<<<< <MAIN HERE....
+       public static int main(string[] args) 
+       {
+               new PackerRun(args);
+               return 0;
+       }
+
+
+       class PackerRun : Application  
+       {
+               const OptionEntry[] options = {
+               
+                       
+                       { "target", 0, 0, OptionArg.STRING, ref opt_target, "Target File to write (eg. roojs.js)", null },
+                       { "debug-target", 0, 0, OptionArg.STRING, ref opt_debug_target, "Target File to write debug code (eg. roojs-debug.js)", null },
+                       { "tmpdir", 0, 0, OptionArg.STRING, ref opt_tmpdir, "Temporary Directory to use", null },
+                       { "file", 0, 0, OptionArg.STRING_ARRAY, ref opt_files ,"add a file to compile", null },
+                       { "index-files", 0, 0, OptionArg.STRING_ARRAY, ref opt_files_from ,"files that contain listing of files to compile", null },             
+                       { "debug", 0, 0, OptionArg.NONE, ref opt_debug, "Show debug messages", null },
+                       // fixme -- keepwhite.. cleanup 
+                       
+                       { null }
+               };
+               public static string opt_target = "";
+               public static string opt_debug_target = "";
+               public static string opt_tmpdir = "";
+               
+               
+               public static string[] opt_files = {};
+               public static string opt_files_from = "";
+               public static bool opt_debug = false;
+               
+
+
+       
+               public PackerRun (string[] args)
+               {
+               
+                       Object(
+                           application_id: "org.roojs.jsdoc.packerrun",
+                               flags: ApplicationFlags.FLAGS_NONE
+                       );
+                                        
+                        
+                       var opt_context = new OptionContext ("JSDOC Packer");
+                       
+                       try {
+                               opt_context.set_help_enabled (true);
+                               opt_context.add_main_entries (options, null);
+                               opt_context.parse (ref args);
+                                
+                               
+                       } catch (OptionError e) {
+                               stdout.printf ("error: %s\n", e.message);
+                               stdout.printf ("Run '%s --help' to see a full list of available command line options.\n %s", 
+                                                        args[0], opt_context.get_help(true,null));
+                               GLib.Process.exit(Posix.EXIT_FAILURE);
+                                
+                       }
+                       // what's required...
+                       if (opt_debug) {
+                               GLib.Log.set_handler(null, 
+                                       GLib.LogLevelFlags.LEVEL_DEBUG | GLib.LogLevelFlags.LEVEL_WARNING, 
+                                       (dom, lvl, msg) => {
+                                       print("%s: %s\n", dom, msg);
+                               });
+                       }
+                       
+                       // now run the Packer...
+                       var p = new Packer(opt_target, opt_debug_target);
+                       if (opt_files.length > 0) {
+                               GLib.debug("Adding Files");
+                               p.loadFiles(opt_files);
+                       }
+                       p.pack();
+               }        
+               
+       }
+       
+}
\ No newline at end of file