kopia lustrzana https://github.com/c9/core
Merge pull request +15707 from c9/vfs-fix-env-init
Vfs workaround for bashrc waiting for user inputpull/460/head
commit
dc81411fb7
|
@ -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
|
||||
|
|
Ładowanie…
Reference in New Issue