Merge pull request +15707 from c9/vfs-fix-env-init

Vfs workaround for bashrc waiting for user input
pull/460/head
Matthijs van Henten 2017-10-12 15:42:44 +02:00 zatwierdzone przez GitHub
commit dc81411fb7
1 zmienionych plików z 12 dodań i 8 usunięć

20
node_modules/vfs-local/localfs.js wygenerowano vendored
Wyświetl plik

@ -141,7 +141,8 @@ module.exports = function setup(fsOptions) {
var waitForEnv = null;
if (!isWin) {
waitForEnv = [];
_execFile(BASH, ["-lc", "printenv -0"], function(error, stdout, stderr) {
// using timeout because bash initialization may open a prompt blocking this call
_execFile(BASH, ["-lc", "printenv -0"], { timeout: 1500 }, function(error, stdout, stderr) {
var pending = waitForEnv;
waitForEnv = null;
if (!error && !stderr && stdout) {
@ -1673,6 +1674,9 @@ module.exports = function setup(fsOptions) {
var tmuxName = options.tmuxName || TMUXNAME;
var session = options.session;
_setDefaultEnv(options);
delete options.env.TMUX;
function getFormatString(map) {
return Object.keys(map).filter(function(x) {
return x[0] == "#";
@ -1699,7 +1703,8 @@ module.exports = function setup(fsOptions) {
"list-panes", "-F", "c9-pid-#{pane_pid}-#{pane_dead}-#{pane_status}",
"-t", session
], {
maxBuffer: 1000 * 1024
maxBuffer: 1000 * 1024,
env: options.env,
}, function(err, stdout) {
var matches = /c9-pid-(\d+)-(\d)-/.exec(stdout);
var isDead = parseInt(matches && matches[2], 10);
@ -1770,7 +1775,7 @@ module.exports = function setup(fsOptions) {
args.push("list-sessions", "-F", getFormatString(sessionFormat));
return _execFile(TMUX, args, function(e, data) {
return _execFile(TMUX, args, options, function(e, data) {
var sessions = [];
(data || "").split("\n").forEach(function(str) {
if (!str)
@ -1825,7 +1830,7 @@ module.exports = function setup(fsOptions) {
args.push("-t", sessionId);
}
return _execFile(TMUX, args, function(e, data) {
return _execFile(TMUX, args, options, function(e, data) {
var panes = {};
var clientsSection = false;
(data || "").split("\n").forEach(function(str) {
@ -1860,7 +1865,8 @@ module.exports = function setup(fsOptions) {
_execFile(TMUX,
["-L", tmuxName, "-C", "kill-session", "-t", options.session],
function(err){
options,
function(err) {
if (!options.command)
return callback(err, {});
@ -1873,7 +1879,7 @@ module.exports = function setup(fsOptions) {
return callback(new Error("Missing session name"));
(function findSession(retries){
_execFile(TMUX, ["-u2", "-L", tmuxName, "list-sessions"], function(err, stdout) {
_execFile(TMUX, ["-u2", "-L", tmuxName, "list-sessions"], options, function(err, stdout) {
if (err) stdout = ""; // This happens when the tmux server has not been started yet
var re = new RegExp("^" + escapeRegExp(options.session) + ":", "m");
@ -1979,8 +1985,6 @@ module.exports = function setup(fsOptions) {
function run(err){
if (err) return callback(err);
_setDefaultEnv(options);
delete options.env.TMUX;
// HACK: workaround for tmux 2.2 bug:
// tmux passes PATH to new sessions breaking rvm