#!/usr/bin/env node var Mdx = require('../index') var Extractor = Mdx.Extractor if (!process.parent) run() /** * Runs. */ function run () { var read = require('read-input') var argv = yargs().argv var ex = new Extractor({ excludeTags: argv.excludeTag || [] }) read(argv._).then(function (res) { // non-fatal errors if (res.error) console.warn(res.error.message) res.files.forEach(function (f) { ex.push(f.name, f.data) }) var output = ex.toJson() if (argv.format === 'json') { console.log(JSON.stringify(output, null, 2)) } else if (argv.format === 'markdown') { output = Mdx.renderTemplate(output) process.stdout.write(output) } else { console.error('unknown format: ' + argv.format) } }).catch(function (err) { console.error(err.stack) process.exit(1) }) } function yargs () { return require('yargs') .version(require('../package.json').version) .alias('h', 'help') .help('help') .option('v', { alias: 'version', describe: 'Show version info' }) .usage('Usage: $0 ') .option('format', { alias: 'f', type: 'string', describe: 'set output format {json,markdown}', default: 'json' }) .option('exclude-tag', { type: 'array', alias: 'x', describe: 'tags to exclude' }) .example('$0 lib/*.js') .showHelpOnFail(false, 'Specify --help for available options') .strict() }