使用指挥官的阵列

时间:2016-02-01 15:46:58

标签: javascript arrays node.js command-line-interface

嘿伙计们!

我需要commander node.js库的帮助。我需要创建一个接受3个标志的CLI, - input, - output和--pattern,如:

commander
  .version('3.0.0')
  .usage('[options] <file ...>')
  .option('-i, --input', 'Array of files to be extracted')
  .option('-o, --output', 'Output file name')
  .option('-p, --pattern', 'Pattern name to be used in the extraction')
  .parse(process.argv);

我的问题是输入标志。我需要发送几个文件,因为我需要一个数组数据类型。

问题是:我无法弄明白如何做到这一点:

node ./bin/extract -i ../files/*.PDF

成为一个包含我文件目录中所有文件的数组。我已经尝试运行文档中的每个示例,但我找不到解决问题的方法。此外,我搜索了问题,但没有找到......有什么奇怪的,也许我做错了什么,你们可以帮忙?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用Coercion来实现它:

function scanDir(val) {
    files = fs.readdirSync(val);
    return files;
}

program
    .version('0.0.1')
    .option('-s, --scan [value]', '', scanDir)
    .parse(process.argv);

console.log(' scan: %j', program.scan);

并称之为:

node app.js -s /foo