From f6b3e2426fba94de9fc40102f9eb23ac52246b5c Mon Sep 17 00:00:00 2001 From: Zongmin Lei Date: Mon, 3 Mar 2014 19:47:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=BD=E4=BB=A4=E8=A1=8C=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/xss | 54 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/bin/xss b/bin/xss index d1fa8c7..225a1b1 100644 --- a/bin/xss +++ b/bin/xss @@ -6,20 +6,62 @@ * @author 老雷 */ +var fs = require('fs'); +var path = require('path'); var program = require('commander'); var xss = require('../'); var packageInfo = require('../package.json'); program .version(packageInfo.version) - .option('-t, --test', 'Active test') - .option('-i, --input ', 'Input file name') - .option('-o, --output ', 'Output filename') - .option('-c, --config ', 'Load custom config') - .parse(process.argv); + .option('-t, --test', 'active test') + .option('-i, --input ', 'input file name') + .option('-o, --output ', 'output filename') + .option('-c, --config ', 'load custom config') + .option('-s, --strip-ignore-tag', 'set stripIgnoreTag=true') + .option('-b, --strip-ignore-tag-body', 'set stripIgnoreTagBody=true'); -console.log(program); +program.on('--help', function () { + console.log(' Examples:'); + console.log(''); + console.log(' $ xss -t'); + console.log(' $ xss -i origin.html'); + console.log(' $ xss -i origin.html -o targer.html'); + console.log(' $ xss -i origin.html -c config.js'); + console.log(' $ xss -i origin.html -s'); + console.log(' $ xss -i origin.html -s -b'); + console.log(''); + console.log(' For more details, please see: https://npmjs.org/package/xss') +}); + +program.parse(process.argv); if (program.test) { require('../lib/cli'); + return; +} + +var config = {}; +if (program.config) { + config = require(path.resolve(program.config)); +} +if (program.input) { + var input = fs.readFileSync(program.input, 'utf8'); +} else { + program.help(); +} + +if (program['strip-ignore-tag']) { + config.stripIgnoreTag = true; +} +if (program['strip-ignore-tag-body']) { + config.stripIgnoreTagBody = true; +} + +var output = xss(input, config); + +if (program.output) { + fs.writeFileSync(program.output, output); +} else { + console.log(output); }