Code coverage report for beefy/lib/cli.js

Statements: 100% (22 / 22)      Branches: 100% (6 / 6)      Functions: 100% (4 / 4)      Lines: 100% (22 / 22)      Ignored: none     

All files » beefy/lib/ » cli.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 552   2     2             1 5   5   1 5 1     4       4 1   1     3 3 3 1     3 3         3       1 3          
module.exports = cli
 
var http = require('http')
  , open = require('open')
 
var createHandler = require('./create-handler.js')
  , parseArgs = require('./args-to-options.js')
  , makeIO = require('./make-io.js')
  , help = require('./help.js')
  , path = require('path')
  , fs = require('fs')
 
function cli(argv, cwd, stdout, stderr, ready) {
  var io = makeIO(process, stdout, stderr)
 
  return parseArgs(argv, cwd, onparsed)
 
  function onparsed(err, options) {
    if(err) {
      return ready(err)
    }
 
    var handlerOpts = options.handler
      , openOpts = options.open
      , server
 
    if(openOpts.showHelp) {
      help(io)
 
      return ready(new Error('--help'))
    }
 
    server = http.createServer(createHandler(handlerOpts, io))
    server.listen(openOpts.port, function(err) {
      if(openOpts.openBrowser) {
        open(openOpts.openURL)
      }
 
      server.openURL = openOpts.openURL
      io.log(
          'beefy (v' + version() + ') ' +
          'is listening on ' + openOpts.openURL
      )
 
      return ready(null, server)
    })
  }
 
  function version() {
    return JSON.parse(fs.readFileSync(
        path.join(__dirname, '..', 'package.json'))
    ).version
  }
}