src/jsdoc/PackerRun.vala
[roojspacker] / src / jsdoc / PackerRun.vala
index 24d83c8..33e01fd 100644 (file)
@@ -28,19 +28,58 @@ namespace JSDOC
                public static string opt_target = null;
                public static string opt_debug_target = null;
 //             public static string opt_tmpdir = null;
-               public static string opt_basedir = null;
+               private static string opt_basedir = null;
+               
+               /**
+               * @cfg baseDir -- prefix the files listed in indexfiles with this.
+               */
+                
+               public static string opt_real_basedir = null; // USE this one it's calcuated based on current path..
+               
+               public static string opt_doc_target = null;
+               public static string opt_doc_template_dir = null;
+               public static bool opt_doc_include_private = false;             
                                
                [CCode (array_length = false, array_null_terminated = true)]
                private static string[]? opt_files = null;
                [CCode (array_length = false, array_null_terminated = true)]
                private static string[]? opt_files_from = null;
+               
+               
                public static bool opt_debug = false;
+               
+                /**
+                * @cfg {Boolean} opt_skip_scope (optional) skip Scope parsing and replacement.
+                *    usefull for debugging...
+                */
                public static bool opt_skip_scope = false;
-
+               
+               /**
+                * @cfg {Boolean} opt_keep_whitespace (optional) do not remove white space in output.
+                *    usefull for debugging compressed files.
+                */
+               
                public static bool opt_keep_whitespace = false; 
+               
+                       /**
+                * @cfg {Boolean} opt_dump_tokens (optional) read the first file and dump the tokens.
+                *    usefull for debugging...
+                */
+               
                public static bool opt_dump_tokens = false;     
+               
+                 
+               /**
+                * @cfg {Boolean} opt_clean_cache  (optional) clean up temp files after done - 
+                *    Defaults to false if you set tmpDir, otherwise true.
+                */
+               
                public static bool opt_clean_cache = true;      
                
+               // not actually an option yet..
+               
+               public static string opt_doc_ext = "html";
+               
                const OptionEntry[] options = {
                
                        { "jsfile", 'f', 0, OptionArg.FILENAME_ARRAY, ref opt_files ,"add a file to compile", null },
@@ -55,6 +94,7 @@ namespace JSDOC
                        { "debug", 0, 0, OptionArg.NONE, ref opt_debug, "Show debug messages", null },
                        { "dump-tokens", 'k', 0, OptionArg.NONE, ref opt_dump_tokens, "Dump the tokens from a file", null },
                        { "clean-cache", 'c', 0, OptionArg.NONE, ref opt_clean_cache, "Clean up the cache after running (slower)", null },
+
                        // fixme -- keepwhite.. cleanup 
                        
                        // documentation options
@@ -66,45 +106,15 @@ namespace JSDOC
                        //       --doc-template-dir\
                        
                        
-                       { "doc-target", 'd', 0, OptionArg.STRING, ref opt_target, "Documentation Directory target", null },
-                       { "doc-template-dir", 'p', 0, OptionArg.STRING, ref opt_target, "Documentation Directory target", null },
-                       
+                       { "doc-target", 'd', 0, OptionArg.STRING, ref opt_doc_target, "Documentation Directory target", null },
+                       { "doc-template-dir", 'p', 0, OptionArg.STRING, ref opt_doc_template_dir, "Documentation Directory target", null },
+                       { "doc-private", 'p', 0, OptionArg.NONE, ref opt_doc_include_private, "Document Private functions", null },                                             
                        
                        
                        
                        { null }
                };
-               public static int main(string[] args) 
-               {
-                       //foreach(var a in args) {
-                       //      debug("ARG: %s\n", a);
-                       //}
-                       
-                       var opt_context = new OptionContext ("JSDOC Packer");
-                       
-                               try {
-                                       opt_context.set_help_enabled (true);
-                                       opt_context.add_main_entries (options, null);
-                                       if (!opt_context.parse ( ref args)) {
-                                               print("options parse error");
-                                               GLib.Process.exit(Posix.EXIT_FAILURE);
-                                       }
-
-                               
-                                        
-                               
-                               } 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);
-                                        
-                               }
-               
-                       new PackerRun(args);
-                       return 0;
-               }
-
+                
 
        
                public PackerRun (string[] args)
@@ -116,7 +126,9 @@ namespace JSDOC
                        );
 #endif                                  
                         
-                       
+               }
+               public run()
+               {       
                        // what's required...
                        if (opt_debug) {
                                GLib.Log.set_handler(null, 
@@ -126,36 +138,27 @@ namespace JSDOC
                                });
                        }
                        
-                       // now run the Packer...
-                       var p = new Packer(
-                               
-                               );
-                       p.keepWhite = opt_keep_whitespace;
-                       p.skipScope = opt_skip_scope;
-                       p.dumpTokens = opt_dump_tokens;
-                       p.cleanup = opt_clean_cache;
-                       //if (opt_tmpdir == null) {
-                       //      p.cleanup = false;
-                       //} else {
-                       //      p.tmpDir = opt_tmpdir;
-                       //}
-                       
                        
+               
+  
+  
+                        
                        // set the base directory...
                        var curdir = Environment.get_current_dir() + Path.DIR_SEPARATOR_S;
                        if (opt_basedir == null) {
-                               p.baseDir = curdir;
+
+                               opt_real_basedir = curdir;
                        } else if (opt_basedir[0] == '/') {     
-                               p.baseDir = opt_basedir;
+                               opt_real_basedir  = opt_basedir;
                        } else {
-                               p.baseDir = curdir + opt_basedir;
+                               opt_real_basedir  = curdir + opt_basedir;
                        }
                        // suffix a slash..
-                       if (p.baseDir[p.baseDir.length-1].to_string() != Path.DIR_SEPARATOR_S) {
-                               p.baseDir += Path.DIR_SEPARATOR_S;
+                       if (opt_real_basedir [opt_real_basedir .length-1].to_string() != Path.DIR_SEPARATOR_S) {
+                               opt_real_basedir  += Path.DIR_SEPARATOR_S;
                        }
                        
-                       print("BaseDir = '%s' : opt_basedir ='%s'\n", p.baseDir, opt_basedir);
+                       GLib.debug("real_base_dir  = '%s' : opt_basedir ='%s'\n", opt_real_basedir , opt_basedir);
                        
                        
                        if (opt_files == null && opt_files_from == null) {
@@ -164,6 +167,10 @@ namespace JSDOC
                        }
                        
                        
+                               // now run the Packer...
+                       var p = new Packer(                     );
+                       
+                       
                        if (opt_files != null) {
                         
                                foreach (var  f in opt_files) {
@@ -179,15 +186,23 @@ namespace JSDOC
                                }
                        }  
                        
+                       var run_pack = false;
+                       if (opt_target != null || opt_debug_target != null || opt_dump_tokens) {
                        
-                       
-                       p.pack( opt_target == null ? "" : opt_target ,
-                                       opt_debug_target == null ? "" :  opt_debug_target );
-            
-               if (p.outstr.length > 0 ) {
-                               stdout.printf ("%s", p.outstr);
-                       }
-            
+                               p.pack( opt_target == null ? "" : opt_target ,
+                                               opt_debug_target == null ? "" :  opt_debug_target );
+                       
+                       if (p.outstr.length > 0 ) {
+                                       stdout.printf ("%s", p.outstr);
+                               }
+               }
+               if (opt_doc_target != null) {
+                       //var d = new DocBuilder(p);
+               }
+               
+               
+               
+               
                }        
                
        }