From 56fa78573ea96ddfa6462b5e98b7995eb91a0abf Mon Sep 17 00:00:00 2001 From: Jeff Williams Date: Sun, 19 Aug 2012 15:17:56 -0700 Subject: [PATCH] keep track of which VM is running JSDoc --- jsdoc.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/jsdoc.js b/jsdoc.js index 21eaa02c..4824693a 100644 --- a/jsdoc.js +++ b/jsdoc.js @@ -21,6 +21,12 @@ env = { finish: null }, + /** + The type of VM that is executing jsdoc. + @type string + */ + vm: '', + /** The command line arguments passed into jsdoc. @type Array @@ -120,6 +126,23 @@ function exit(n) { java.lang.System.exit(n); } +/** + Detect the type of VM running jsdoc. + **Note**: Rhino is the only VM that is currently supported. + @return {string} rhino|node + */ +function detectVm() { + if (typeof Packages === "object" && + Object.prototype.toString.call(Packages) === "[object JavaPackage]") { + return "rhino"; + } else if ( require && require.main && module && (require.main === module) ) { + return "node"; + } else { + // unknown VM + return; + } +} + function installPlugins(plugins, p) { var dictionary = require('jsdoc/tag/dictionary'), parser = p || app.jsdoc.parser; @@ -196,6 +219,8 @@ function main() { env.opts = jsdoc.opts.parser.parse(env.args); + env.vm = detectVm(); + try { env.conf = new Config( fs.readFileSync( env.opts.configure || env.dirname + '/conf.json' ) ).get(); }