nymag/responsive-filenames

View on GitHub
lib/cli.js

Summary

Maintainability
A
1 hr
Test Coverage
#!/usr/bin/env node

'use strict';

var fs = require('vinyl-fs'),
  chalk = require('chalk'),
  map = require('vinyl-map'),
  concat = require('gulp-concat'),
  ignore = require('gulp-ignore'),
  wrap = require('./wrap-queries'),
  argv = require('yargs')
    .alias('o', 'output')
    .usage('Usage: $0 input1.css [input2.css ...] [-v] [-o outputfile.css]')
    .argv,
  globs = argv._,
  outputFile = argv.output || 'styles.css',
  stream;

/**
 * write css to the console
 */
 function writeCSS() {
  return map(function (contents) {
    process.stdout.write(contents.toString());
    return contents;
  });
}

// check to make sure we have some input globs
if (!globs || !globs.length) {
  console.log(chalk.red('WARNING:') + ' Input files required!');
} else {
  stream = fs.src(globs)
    .pipe(ignore.include(function (file) { return file.stat && file.stat.size; }))
    .pipe(wrap())
    .pipe(concat(outputFile));

  if (!argv.output) {
    stream.pipe(writeCSS());
  } else {
    stream.pipe(fs.dest('.'));
  }
}