1 | #!/usr/bin/env node
|
2 | 'use strict';
|
3 |
|
4 | // This file is intentionally left compatible with older versions of
|
5 | // node for the following scenario:
|
6 | // * user runs node 0.12
|
7 | // * user is still running an older node 0.12 compatible ember-cli locally
|
8 | // * user unintentionally installs ember-cli latest globally
|
9 |
|
10 | // Provide a title to the process in `ps`
|
11 | process.title = 'ember';
|
12 |
|
13 | var resolve = require('resolve');
|
14 | var logger = require('heimdalljs-logger')('ember-cli:bin');
|
15 |
|
16 | var basedir = process.cwd();
|
17 | logger.info('Resolving "ember-cli" from %j...', basedir);
|
18 |
|
19 | var projectLocalCli;
|
20 | try {
|
21 | projectLocalCli = resolve.sync('ember-cli', {
|
22 | basedir: basedir
|
23 | });
|
24 | } catch(ignored) {}
|
25 |
|
26 | logger.info('Resolved "ember-cli" to %j', projectLocalCli);
|
27 |
|
28 | // Load `ember-cli` either from the project-local path, or if it could not
|
29 | // be resolved use the global version
|
30 | logger.info('Loading "ember-cli"...');
|
31 | var cli = require(projectLocalCli || '../lib/cli');
|
32 |
|
33 | logger.info('Starting "ember-cli"...');
|
34 | cli({
|
35 | cliArgs: process.argv.slice(2),
|
36 | inputStream: process.stdin,
|
37 | outputStream: process.stdout,
|
38 | errorStream: process.stderr
|
39 | }).then(function(result) {
|
40 | var exit = require('exit');
|
41 | var exitCode = typeof result === 'object' ? result.exitCode : result;
|
42 |
|
43 | logger.info('Quitting "ember-cli" with exit code: %j', exitCode);
|
44 | exit(exitCode);
|
45 | });
|