Code coverage report for lib/cli.js

Statements: 100% (26 / 26)      Branches: 100% (6 / 6)      Functions: 100% (5 / 5)      Lines: 100% (26 / 26)      Ignored: none     

All files » 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 55 56 572   2     2       1 5           5   1 5 1     4       4 1   1     3 3 3 1     3 3   3       1 5 5     1 1 1      
module.exports = cli
 
var http = require('http')
  , open = require('open')
 
var createHandler = require('./create-handler.js')
  , parseArgs = require('./args-to-options.js')
  , help = require('./help.js')
 
function cli(argv, cwd, stdout, stderr, ready) {
  var io = {
      isTTY: process.stdout.isTTY
    , error: outputError
    , log: outputLog
  }
 
  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 is listening on ' + openOpts.openURL)
 
      return ready(null, server)
    })
  }
 
  function outputLog(what) {
    stdout.write(what)
    stdout.write('\n')
  }
 
  function outputError(what) {
    stderr.write(what)
    stderr.write('\n')
  }
}