瀏覽代碼

Merge pull request #540 from wizawu/merge-upstream

Add optional `output` argument to mustache bin
tags/v2.3.0
Phillip Johnsen 10 年之前
父節點
當前提交
e1997ee414
共有 2 個文件被更改,包括 19 次插入2 次删除
  1. +7
    -2
      bin/mustache
  2. +12
    -0
      test/cli-test.js

+ 7
- 2
bin/mustache 查看文件

@@ -16,13 +16,14 @@ while ((partialArgIndex = process.argv.indexOf('-p')) > -1) {

var viewArg = process.argv[2];
var templateArg = process.argv[3];
var outputArg = process.argv[4];

if (hasVersionArg()) {
return console.log(pkg.version);
}

if (!templateArg || !viewArg) {
console.error('Syntax: mustache <view> <template>');
console.error('Syntax: mustache <view> <template> [output]');
process.exit(1);
}

@@ -92,7 +93,11 @@ function render (cb, templateStr, jsonView) {
}

function toStdout (cb, str) {
cb(process.stdout.write(str));
if (outputArg) {
cb(fs.writeFileSync(outputArg, str));
} else {
cb(process.stdout.write(str));
}
}

function streamToStr (stream, cb) {


+ 12
- 0
test/cli-test.js 查看文件

@@ -60,6 +60,18 @@ describe('Mustache CLI', function () {
});
});

it('writes rendered template into the file specified by the third argument', function(done) {
var outputFile = 'test/_files/cli_output.txt';
exec('bin/mustache test/_files/cli.json test/_files/cli.mustache ' + outputFile, function(err, stdout, stderr) {
assert.equal(err, null);
assert.equal(stderr, '');
assert.equal(stdout, '');
assert.equal(fs.readFileSync(outputFile), expectedOutput);
fs.unlink('test/_files/cli_output.txt');
done();
});
});

it('reads view data from stdin when first argument equals "-"', function(done){
exec('cat test/_files/cli.json | bin/mustache - test/_files/cli.mustache', function(err, stdout, stderr) {
assert.equal(err, null);


Loading…
取消
儲存