JSDOC/Options.js
[gnome.introspection-doc-generator] / JSDOC / Options.js
index b545e9f..0bbc529 100644 (file)
@@ -6,32 +6,35 @@ XObject = import.XObject.XObject;
 File = import.File.File;
 
 Options = {
+
+    // options get defined like this..
+    "--src"           :  "source directory (either absolute - starts with "/" or relative " + 
+                        "- without, in which case it's added to baseDir"
+    "--baseDir"       :  'Base Directory (root directory of code)',
+    "--target"        :  'Target Directory (where html files go)',
+    "--cacheDirectory": 'Cached Files Directory',
+    "--conf"          : 'Read From a Configuration file',       // was c. - configuration file.. - parsed with JSON.parse
+    "--template"      : 'Template Directory',   // was t.
+    // "recurse": false,   // was r. - not supported..
+    "--ext"           :  'Extension of code files to read (normally js)',   // was x.
+    "--publishExt"    : 'Extension of html files to write (normally html)',
+    //"private": '',   // was p
+    //"allfunctions": '',   // was a
+    //"encoding": '',   // was e.
+    //"nocode": '',  // was n
+    //"out": '',   // was o.
+    //"suppress": '',  // was s ??? used?
+    "--outputSource" : 'Output the Source code to symbols/src/* (boolean)',
+    //"testmode": '',  // was t
+    "--help"          : 'Show help',   // was h
+    "--verbose"       : 'Show verbose messages',   // was v
+    //"disablecache": '',   // was C -- not needed? - see if cacheDirectory was set..
+    //"define" : [],   // was D.
+    //"handler" : [],  // was H -- not supported..
+
     
-    argTypes : {
-        "baseDir"       :  'Base Directory (root directory of code)',
-        "target"        :  'Target Directory (where html files go)',
-        "cacheDirectory": 'Cached Files Directory',
-        "conf"          : 'Read From a Configuration file',       // was c. - configuration file.. - parsed with JSON.parse
-        "template"      : 'Template Directory',   // was t.
-        // "recurse": false,   // was r. - not supported..
-        "ext"           :  'Extension of code files to read (normally js)',   // was x.
-        "publishExt"    : 'Extension of html files to write (normally html)',
-        //"private": '',   // was p
-        //"allfunctions": '',   // was a
-        //"encoding": '',   // was e.
-        //"nocode": '',  // was n
-        //"out": '',   // was o.
-        //"suppress": '',  // was s ??? used?
-        "outputSource" : 'Output the Source code to symbols/src/* (boolean)',
-        //"testmode": '',  // was t
-        "help"          : 'Show help',   // was h
-        "verbose"       : 'Show verbose messages',   // was v
-        //"disablecache": '',   // was C -- not needed? - see if cacheDirectory was set..
-        "define" : [],   // was D.
-        "handler" : [],  // was H -- not supported..
-    }
-    
-    
+    // and now the defaults.. (which type can be infered from..)
+    "src" : [],
     "baseDir" :  '',  // base directory - 
     "target" : '',   // was d. ?? source directory (needed to put temporary files..)
     "cacheDirectory" : '',
@@ -48,7 +51,7 @@ Options = {
     "suppress": '',  // was s ??? used?
     "outputSource" : true,
     "testmode": '',  // was t
-    "help": '',   // was h
+    "help": false,   // was h;se
     "verbose": '',   // was v
     "disablecache": '',   // was C
     "define" : [],   // was D.
@@ -129,45 +132,37 @@ Options = {
         
 
         for(var i =0; i < args.length;i++) {
-            if (args[i] == '-o') {
-                cfg.target = args[i+1];
-                i++;
-                continue;
-            }
-            if (args[i] == '-O') {
-                cfg.debugTarget = args[i+1];
-                i++;
-                continue;
+            if (!args[i].match(/\-\-[a-z+]$/)) {
+                throw {
+                    name: "ArgumentError", 
+                    message: "Unknown argument: " + args[i] 
+                };
             }
-            if (args[i] == '-t') {
-                cfg.translateJSON = args[i+1];
-                i++;
-                continue;
-            }
-            if (args[i] == '-w') {
-                cfg.tmpDir = args[i+1];
-                i++;
-                continue;
+            var a = arg[i].substring(2);
+            if (typeof(argTypes[arg[i]]) == 'undefined') {
+                throw {
+                    name: "ArgumentError", 
+                    message: "Unknown argument: " + args[i] 
+                };
             }
-            if (args[i] == '-p') {
-                cfg.prefix = args[i+1];
+            // type!!?!?
+            if (typeof(this[a]) == 'string') {
+                this[a] = args[i+1];
                 i++;
                 continue;
             }
-         
-            if (args[i] == '-C') {
-                cfg.cleanup = false;
-                continue;
-            }
-            if (args[i] == '-f') {
-                cfg.srcfile = args[i+1];
+            if (typeof(this[a]) == 'boolean') {
+                if (['false', 'true'].indexOf(args[i+1]) < 0) {
+                    throw {
+                        name: "ArgumentError", 
+                        message: "Unknown value for : " + args[i] + ' : ' +  args[i+1] 
+                    };
+                }
+                this[a] = args[i+1] == 'true';
                 i++;
                 continue;
             }
-            if (cfg.files.indexOf(args[i]) > -1) {
-                continue; // remove dupes.
-            }
-            cfg.files.push(args[i]);
-        }
+            if (typeof(this[a]) == 'boolean') {
+            
     
 }
\ No newline at end of file