From 9e0ec804e4739ec4594757b6369d876d1a72b0bb Mon Sep 17 00:00:00 2001 From: ButuzGOL Date: Mon, 27 Mar 2017 18:59:23 +0300 Subject: [PATCH] Cli feature --- cli.js | 25 +++++++++++++++++++++++++ css_wrap.js | 6 +++++- package.json | 4 ++++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100755 cli.js 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"