diff --git a/cli.js b/cli.js new file mode 100755 index 0000000..e72f0b2 --- /dev/null +++ b/cli.js @@ -0,0 +1,25 @@ +#!/usr/bin/env node + +process.bin = process.title = 'css-wrap'; + +var program = require('commander'); +var pkg = require('./package.json'); + +var css_wrap = require('./css_wrap'); + +program + .version(pkg.version) + .usage('') + .option('--selector ', 'A namespace selector in which to wrap CSS') + .option('--skip [value]', 'Skip css rules by regular expressions') + .parse(process.argv); + + +if (program.args.length < 1) { + program.help(); +} + +console.log(css_wrap(program.args[0], { + selector: program.selector, + skip: program.skip +})); diff --git a/css_wrap.js b/css_wrap.js index c9533d9..8694d7f 100644 --- a/css_wrap.js +++ b/css_wrap.js @@ -23,7 +23,11 @@ var return list.map( function( r ) { if ( r.selectors ) { r.selectors.forEach( function( s, index ) { - if (options.skip && options.skip.test(s)) return + var skip = options.skip; + if (skip) { + if (typeof skip === 'string') skip = new RegExp(skip); + if (skip.test(s)) return; + } var selector = options.selector ? options.selector + " " + s : s; r.selectors[ index ] = selector; }); diff --git a/package.json b/package.json index 9b881ff..a82ea00 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,11 @@ "scripts": { "test": "nodeunit test/css_wrap_test.js" }, + "bin": { + "css-wrap": "./cli.js" + }, "dependencies": { + "commander": "^2.9.0", "css-parse": "^2.0.0", "css-stringify": "^2.0.0", "deepmerge": "^0.2.10"