mirror of
https://github.com/nodejs/node.git
synced 2025-05-07 08:00:26 +00:00

101dd1e
introduced 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: https://github.com/nodejs/node/commit/101dd1e
PR-URL: https://github.com/nodejs/node/pull/6680
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Robert Lindstaedt <robert.lindstaedt@gmail.com>
62 lines
1.5 KiB
JavaScript
62 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);
|
|
}
|
|
}
|