From 027787ce692c746ed928fe1e7d7a43739ea58188 Mon Sep 17 00:00:00 2001 From: ido Date: Tue, 18 Nov 2014 15:54:20 +0200 Subject: [PATCH] add force option --- src/cli.js | 17 ++++++++++++----- src/reactTemplates.js | 10 ++++++---- 2 files changed, 18 insertions(+), 9 deletions(-) mode change 100644 => 100755 src/cli.js diff --git a/src/cli.js b/src/cli.js old mode 100644 new mode 100755 index 7896c61..2e8d54c --- a/src/cli.js +++ b/src/cli.js @@ -8,7 +8,7 @@ var _ = require('lodash'); var path = require('path'); var reactTemplates = require('./reactTemplates'); var pkg = require('../package.json'); -var options = {commonJS: false}; +var options = {commonJS: false, force: false}; if (process.argv.length > 2) { var files = []; @@ -17,23 +17,30 @@ if (process.argv.length > 2) { console.log(pkg.version); } else if (param === '-h' || param === '--help') { printHelp(); - } else if (param === '--common') { + } else if (param === '-c' || param === '--common') { options.commonJS = true; + } else if (param === '-f' || param === '--force') { + options.force = true; } else { files.push(param); } }); - _.forEach(files,handleSingleFile); - + _.forEach(files, handleSingleFile); } else { printHelp(); } function printHelp() { + console.log(pkg.name + ' ' + pkg.version); console.log(pkg.description); console.log(''); console.log('Usage:'); - console.log(' $ node reactTemplates.js '); + console.log(' $ rt [,] []'); + console.log(''); + console.log('Options:'); + console.log(' -v, --version Outputs the version number.'); + console.log(' -h, --help Show help.'); + console.log(' --common Use Common JS output. default: false'); } function handleSingleFile(filename) { diff --git a/src/reactTemplates.js b/src/reactTemplates.js index 2a4d049..f79e4ae 100644 --- a/src/reactTemplates.js +++ b/src/reactTemplates.js @@ -259,9 +259,10 @@ function extractDefinesFromJSXTag(html, defines) { /** * @param {string} html + * @param {{commonJS:boolean}} options * @return {string} */ -function convertTemplateToReact(html,options) { +function convertTemplateToReact(html, options) { // var x = cheerio.load(html); options = options || {}; var defines = {react: 'React', lodash: '_'}; @@ -271,8 +272,8 @@ function convertTemplateToReact(html,options) { var body = convertHtmlToReact(rootNode.root()[0].children[0], context); var requirePaths = _(defines).keys().map(function (reqName) { return '"' + reqName + '"'; }).value().join(','); var requireVars = _(defines).values().value().join(','); - var vars = _(defines).map(function (reqVar,reqPath) {return "var "+reqVar+" = require('"+reqPath+"');"}).join("\n"); - var data = {body: body, injectedFunctions: '', requireNames: requireVars, requirePaths: requirePaths, vars:vars}; + var vars = _(defines).map(function (reqVar, reqPath) { return 'var ' + reqVar + " = require('" + reqPath + "');"; }).join('\n'); + var data = {body: body, injectedFunctions: '', requireNames: requireVars, requirePaths: requirePaths, vars: vars}; data.injectedFunctions = context.injectedFunctions.join('\n'); var code = options.commonJS ? templateCommonJSTemplate(data) : templateAMDTemplate(data); try { @@ -288,6 +289,7 @@ function convertTemplateToReact(html,options) { /** * @param {string} source + * @param {{commonJS:boolean}} options * @param {string} target */ function convertFile(source, target, options) { @@ -297,7 +299,7 @@ function convertFile(source, target, options) { // } var util = require('./util'); - if (!util.isStale(source, target)) { + if (!options.force && !util.isStale(source, target)) { console.log('target file ' + chalk.cyan(target) + ' is up to date, skipping'); // return; }