101dd1eintroduced a regression in the doctool. This commit reverts the changes that were made to the function signature of the various doctool functions while maintaining support for passing in specific node versions. Refs:101dd1ePR-URL: https://github.com/nodejs/node/pull/6680 Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com> Reviewed-By: Robert Lindstaedt <robert.lindstaedt@gmail.com>
61 lines
1.5 KiB
JavaScript
61 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
const processIncludes = require('./preprocess.js');
|
|
const fs = require('fs');
|
|
|
|
// parse the args.
|
|
// Don't use nopt or whatever for this. It's simple enough.
|
|
|
|
const args = process.argv.slice(2);
|
|
let format = 'json';
|
|
let template = null;
|
|
let inputFile = null;
|
|
let nodeVersion = null;
|
|
|
|
args.forEach(function(arg) {
|
|
if (!arg.match(/^\-\-/)) {
|
|
inputFile = arg;
|
|
} else if (arg.match(/^\-\-format=/)) {
|
|
format = arg.replace(/^\-\-format=/, '');
|
|
} else if (arg.match(/^\-\-template=/)) {
|
|
template = arg.replace(/^\-\-template=/, '');
|
|
} else if (arg.match(/^\-\-node\-version=/)) {
|
|
nodeVersion = arg.replace(/^\-\-node\-version=/, '');
|
|
}
|
|
});
|
|
|
|
nodeVersion = nodeVersion || process.version;
|
|
|
|
if (!inputFile) {
|
|
throw new Error('No input file specified');
|
|
}
|
|
|
|
console.error('Input file = %s', inputFile);
|
|
fs.readFile(inputFile, 'utf8', function(er, input) {
|
|
if (er) throw er;
|
|
// process the input for @include lines
|
|
processIncludes(inputFile, input, next);
|
|
});
|
|
|
|
function next(er, input) {
|
|
if (er) throw er;
|
|
switch (format) {
|
|
case 'json':
|
|
require('./json.js')(input, inputFile, function(er, obj) {
|
|
console.log(JSON.stringify(obj, null, 2));
|
|
if (er) throw er;
|
|
});
|
|
break;
|
|
|
|
case 'html':
|
|
require('./html.js')(input, inputFile, template, nodeVersion,
|
|
function(er, html) {
|
|
if (er) throw er;
|
|
console.log(html);
|
|
});
|
|
break;
|
|
|
|
default:
|
|
throw new Error('Invalid format: ' + format);
|
|
}
|
|
}
|