123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- /**
- * @version $Id: main.js 847 2010-07-03 08:03:44Z micmath $
- */
- function main() {
- IO.include("lib/JSDOC.js");
- IO.includeDir("plugins/");
-
- // process the options
-
- // the -c option: options are defined in a configuration file
- if (JSDOC.opt.c) {
- eval("JSDOC.conf = " + IO.readFile(JSDOC.opt.c));
-
- LOG.inform("Using configuration file at '"+JSDOC.opt.c+"'.");
-
- for (var c in JSDOC.conf) {
- if (c !== "D" && !defined(JSDOC.opt[c])) { // commandline overrules config file
- JSDOC.opt[c] = JSDOC.conf[c];
- }
- }
-
- if (typeof JSDOC.conf["_"] != "undefined") {
- JSDOC.opt["_"] = JSDOC.opt["_"].concat(JSDOC.conf["_"]);
- }
-
- LOG.inform("With configuration: ");
- for (var o in JSDOC.opt) {
- LOG.inform(" "+o+": "+JSDOC.opt[o]);
- }
- }
-
- // hat tip: jeff from metrocat.org
- if (JSDOC.opt.plugins) {
- // Can't use IO.includeDir because it assumes relative paths
- if (SYS.slash != JSDOC.opt.plugins.slice(-1))
- JSDOC.opt.plugins += SYS.slash;
- var pluginFiles= IO.ls(JSDOC.opt.plugins);
- var len = pluginFiles.length;
-
- for (var i = 0; i < len; ++i) {
- if ('.js'!==pluginFiles[i].slice(-3)) continue;
- load(pluginFiles[i]);
- }
- }
-
- // be verbose
- if (JSDOC.opt.v) LOG.verbose = true;
-
- // send log messages to a file
- if (JSDOC.opt.o) LOG.out = IO.open(JSDOC.opt.o);
-
- // run the unit tests
- if (JSDOC.opt.T) {
- LOG.inform("JsDoc Toolkit running in test mode at "+new Date()+".");
- IO.include("frame/Testrun.js");
- IO.include("test.js");
- }
- else {
- // a common error, caused by -t mytemplate, instead of -t=mytemplate
- if (typeof JSDOC.opt.t !== 'string') {
- LOG.warn("No template given. Might as well read the usage notes.");
- JSDOC.usage();
- quit();
- }
-
- // a template must be defined and must be a directory path
- if (!JSDOC.opt.t && System.getProperty("jsdoc.template.dir")) {
- JSDOC.opt.t = System.getProperty("jsdoc.template.dir");
- }
- if (JSDOC.opt.t && SYS.slash != JSDOC.opt.t.slice(-1)) {
- JSDOC.opt.t += SYS.slash;
- }
-
- // verbose messages about the options we were given
- LOG.inform("JsDoc Toolkit main() running at "+new Date()+".");
- LOG.inform("With options: ");
- for (var o in JSDOC.opt) {
- LOG.inform(" "+o+": "+JSDOC.opt[o]);
- }
-
- // initialize and build a symbolSet from your code
- JSDOC.JsDoc();
-
- // debugger's option: dump the entire symbolSet produced from your code
- if (JSDOC.opt.Z) {
- LOG.warn("So you want to see the data structure, eh? This might hang if you have circular refs...");
- IO.include("frame/Dumper.js");
- var symbols = JSDOC.JsDoc.symbolSet.toArray();
- for (var i = 0, l = symbols.length; i < l; i++) {
- var symbol = symbols[i];
- print("// symbol: " + symbol.alias);
- print(symbol.serialize());
- }
- }
- else {
- if (typeof JSDOC.opt.t != "undefined") {
- try {
- // a file named "publish.js" must exist in the template directory
- load(JSDOC.opt.t+"publish.js");
-
- // and must define a function named "publish"
- if (!publish) {
- LOG.warn("No publish() function is defined in that template so nothing to do.");
- }
- else {
- // which will be called with the symbolSet produced from your code
- publish(JSDOC.JsDoc.symbolSet);
- }
- }
- catch(e) {
- LOG.warn("Sorry, that doesn't seem to be a valid template: "+JSDOC.opt.t+"publish.js : "+e);
- }
- }
- else {
- LOG.warn("No template given. Might as well read the usage notes.");
- JSDOC.usage();
- }
- }
- }
-
- // notify of any warnings
- if (!JSDOC.opt.q && LOG.warnings.length) {
- print(LOG.warnings.length+" warning"+(LOG.warnings.length != 1? "s":"")+".");
- }
-
- // stop sending log messages to a file
- if (LOG.out) {
- LOG.out.flush();
- LOG.out.close();
- }
- }
|