ember-cli/ember-cli

View on GitHub
bin/ember

Summary

Maintainability
Test Coverage
#!/usr/bin/env node
'use strict';

// This file is intentionally left compatible with older versions of
// node for the following scenario:
// * user runs node 0.12
// * user is still running an older node 0.12 compatible ember-cli locally
// * user unintentionally installs ember-cli latest globally

// Provide a title to the process in `ps`
process.title = 'ember';

var resolve = require('resolve');
var logger = require('heimdalljs-logger')('ember-cli:bin');

var basedir = process.cwd();
logger.info('Resolving "ember-cli" from %j...', basedir);

var projectLocalCli;
try {
  projectLocalCli = resolve.sync('ember-cli', {
    basedir: basedir
  });
} catch(ignored) {}

logger.info('Resolved "ember-cli" to %j', projectLocalCli);

// Load `ember-cli` either from the project-local path, or if it could not
// be resolved use the global version
logger.info('Loading "ember-cli"...');
var cli = require(projectLocalCli || '../lib/cli');

logger.info('Starting "ember-cli"...');
cli({
  cliArgs: process.argv.slice(2),
  inputStream: process.stdin,
  outputStream: process.stdout,
  errorStream: process.stderr
}).then(function(result) {
  var exit = require('exit');
  var exitCode = typeof result === 'object' ? result.exitCode : result;

  logger.info('Quitting "ember-cli" with exit code: %j', exitCode);
  exit(exitCode);
}, function(err) {
  console.log(err);
  process.exit(-1);
});