JSDOC/Options.js
[gnome.introspection-doc-generator] / JSDOC / Options.js
index 7b32863..757ec91 100644 (file)
@@ -2,27 +2,89 @@
 /**
  * Options management...
  */
-
+XObject = import.XObject.XObject;
+File = import.File.File;
 
 Options = {
     
-    
-    "directory" : '',
-    "conf" : '',
-    "template": '',
-    "recurse": '',
-    "ext": '',
-    "private": '',
-    "allfunctions": '', 
-    "encoding": '',
-    "nocode": '',
-    "out": '',
-    "suppress": '',
-    "testmode": '',
-    "help": '',
-    "verbose": '',
-    "disablecache": '',
-    "define" : [],
-    "handler" : []
-    
+    "baseDir" :  '',  // base directory - 
+    "target" : '',   // was d. ?? source directory (needed to put temporary files..)
+    "cacheDirectory" : '',
+    "conf" : '',       // was c. - configuration file.. - parsed with JSON.parse
+    "template": '',   // was t.
+    // "recurse": false,   // was r. - not supported..
+    "ext": '',   // was x.
+    "publishExt" : 'html',
+    "private": '',   // was p
+    "allfunctions": '',   // was a
+    "encoding": '',   // was e.
+    "nocode": '',  // was n
+    "out": '',   // was o.
+    "suppress": '',  // was s ??? used?
+    "outputSource" : true,
+    "testmode": '',  // was t
+    "help": '',   // was h
+    "verbose": '',   // was v
+    "disablecache": '',   // was C
+    "define" : [],   // was D.
+    "handler" : [],  // was H -- not supported..
+    LOG : {
+        warn : function(str) {
+            print("Warn: " +str );
+        },
+        inform : function(str) {
+            print("Inform: " +str );
+        },
+        close : function() { },
+        flush : function() { },
+        out: false,
+        warnings : [],
+        verbose : false    
+    },
+    init : function()
+    {
+        this.LOG.verbose = this.verbose;
+        
+        
+        if (this.conf) {
+            XObject.extend(this, JSON.parse(File.read(this.conf)));;
+        }
+        // help ?? -- usage..
+        
+        if (!this.src.length) {
+            throw {
+                name: "ArgumentError", 
+                message: "No source directories specified" 
+            };
+        }
+        if (!this.template) {
+            throw {
+                name: "ArgumentError", 
+                message: "No template specified" 
+            };
+        }
+         
+        if (!this.target) {
+            throw {
+                name: "ArgumentError", 
+                message: "No directory specified" 
+            };
+        }
+        f (!this.baseDir) {
+            throw {
+                name: "ArgumentError", 
+                message: "No baseDir specified" 
+            };
+        }
+        
+        // should cacheDirectory be a subdirectory of target??
+        // if not set..
+        if (!this.cacheDirectory) {
+            throw {
+                name: "ArgumentError", 
+                message: "No cacheDirectory specified" 
+            };
+        }
+        
+    }
 }
\ No newline at end of file