Hans 601f9b38f8 feat(@angular/cli): move angular-cli to @angular/cli (#4328)
This release is otherwise identical to beta.28.
2017-02-01 18:19:50 -08:00

43 lines
935 B
JavaScript

'use strict';
var Promise = require('../ext/promise');
var spawn = require('child_process').spawn;
function openEditor(file) {
if (!openEditor.canEdit()) {
throw new Error('EDITOR environment variable is not set');
}
if (!file) {
throw new Error('No `file` option provided');
}
var editorArgs = openEditor._env().EDITOR.split(' ');
var editor = editorArgs.shift();
var editProcess = openEditor._spawn(editor, [file].concat(editorArgs), {stdio: 'inherit'});
return new Promise(function(resolve, reject) {
editProcess.on('close', function (code) {
if (code === 0) {
resolve();
} else {
reject();
}
});
});
}
openEditor.canEdit = function() {
return openEditor._env().EDITOR !== undefined;
};
openEditor._env = function() {
return process.env;
};
openEditor._spawn = function() {
return spawn.apply(this, arguments);
};
module.exports = openEditor;