JSDOC/Options.js
[gnome.introspection-doc-generator] / JSDOC / Options.js
index ac6d73b..00b6ec0 100644 (file)
@@ -71,24 +71,53 @@ Options = {
     },
     init : function()
     {
-        this.LOG.verbose = this.verbose;
         
+        if (this.help) {
+            this.showHelp();
+          
+        }
+        
+        // the reset of this is specific to JSDOC - and can not be moved to a generic handler..
+        
+         
+        this.LOG.verbose = this.verbose;
         
+        // this is most likely to come from the command line..
         if (this.conf) {
             XObject.extend(this, JSON.parse(File.read(this.conf)));;
         }
         // help ?? -- usage..
-        
+        if (!this.baseDir) {
+            throw {
+                name: "ArgumentError", 
+                message: "No baseDir specified" 
+            };
+        }
         if (!this.src.length) {
             throw {
                 name: "ArgumentError", 
                 message: "No source directories specified" 
             };
         }
+        // append full path to source directories.
+        var _this= this;
+        this.src.forEach(function(v, i) {
+            if (v[0] != '/') {
+                this.src[i] = _this.baseDir + '/' + v;
+            }
+            if (File.isDirectory(this.src[i])) {
+                throw {
+                    name: "ArgumentError", 
+                    message: "invalid Source Directory : " +  v;
+                };
+            }
+        }
+        
+        
         if (!this.template) {
             throw {
                 name: "ArgumentError", 
-                message: "No template specified" 
+                message: "No template Directory specified" 
             };
         }
          
@@ -98,12 +127,7 @@ Options = {
                 message: "No directory specified" 
             };
         }
-        f (!this.baseDir) {
-            throw {
-                name: "ArgumentError", 
-                message: "No baseDir specified" 
-            };
-        }
+      
         
         // should cacheDirectory be a subdirectory of target??
         // if not set..
@@ -126,11 +150,6 @@ Options = {
         args.shift(); //seed
         args.shift(); // pack.js
         
-        
-        
-        
-        
-
         for(var i =0; i < args.length;i++) {
             if (args[i].substring(0,2) != '--') {
                 
@@ -177,7 +196,23 @@ Options = {
             }
             throw {
                 name: "ArgumentError", 
-                message: "Do no know how to handle: " + a
+                message: "Do not know how to handle: " + a
             };  
+        }
+        
+        
+    },
+    
     
+    function showHelp()
+    {
+        print ("Usage: ");
+        for(var i in this) {
+            if (i.substring(0,2) != '--') {
+                continue;
+            }
+            print( i + '  ARG  : ' + this[i]);
+            throw "DONE";
+        }
+    }
 }
\ No newline at end of file