eiriksm/readmeify

View on GitHub
bin/_readmeify.js

Summary

Maintainability
A
0 mins
Test Coverage
/*eslint no-process-exit: 0 */
'use strict';
var dir = process.cwd();
var beforeBool = require('./lib/beforeBool');
var isVersionArg = require('./lib/version').arg;
var displayVersion = require('./lib/version').display;

var schema = {
  properties: {
    readme: {
      type: 'string',
      default: 'y',
      before: beforeBool,
      description: 'No README.md found, would you like to create one?',
      conform: function(val) {
        if (val !== 'y') {
          console.log('Nothing to do here. Exiting.');
          process.exit(1);
        }
        return true;
      }
    },
    david: {
      type: 'string',
      default: 'y',
      before: beforeBool,
      description: 'Do you want a david.dm badge?'
    },
    travis: {
      type: 'string',
      default: 'y',
      before: beforeBool,
      description: 'Do you want a travis-ci badge?'
    },
    codeclimate: {
      type: 'string',
      default: 'y',
      before: beforeBool,
      description: 'Do you want a Code climate badge?'
    },
    coveralls: {
      type: 'string',
      default: 'y',
      before: beforeBool,
      description: 'Do you want a coveralls badge?'
    },
    travisyml: {
      type: 'string',
      default: 'y',
      before: beforeBool,
      description: 'Do you want a .travis.yml file?'
    }
  }
};

var readmefile = require('./lib/findReadme')(dir);
if (readmefile) {
  delete schema.properties.readme;
}
var pack = require('./lib/findPackage')(dir);
if (!pack) {
  console.error('No package.json found in ' + dir.red);
  process.exit(1);
}
var settings = {
  dir: dir,
  package: pack
};
if (process.argv[2] && isVersionArg(process.argv[2])) {
  displayVersion();
  process.exit(0);
}
require('./lib/startPrompt')(schema, settings, function(err, code) {
  if (err) {
    throw err;
  }
  process.exit(code);
});