kopia lustrzana https://github.com/c9/core
always pass same environment to tmux to always connect to the same server
rodzic
1ea274ea00
commit
093652de5b
|
@ -1674,6 +1674,9 @@ module.exports = function setup(fsOptions) {
|
||||||
var tmuxName = options.tmuxName || TMUXNAME;
|
var tmuxName = options.tmuxName || TMUXNAME;
|
||||||
var session = options.session;
|
var session = options.session;
|
||||||
|
|
||||||
|
_setDefaultEnv(options);
|
||||||
|
delete options.env.TMUX;
|
||||||
|
|
||||||
function getFormatString(map) {
|
function getFormatString(map) {
|
||||||
return Object.keys(map).filter(function(x) {
|
return Object.keys(map).filter(function(x) {
|
||||||
return x[0] == "#";
|
return x[0] == "#";
|
||||||
|
@ -1700,7 +1703,8 @@ module.exports = function setup(fsOptions) {
|
||||||
"list-panes", "-F", "c9-pid-#{pane_pid}-#{pane_dead}-#{pane_status}",
|
"list-panes", "-F", "c9-pid-#{pane_pid}-#{pane_dead}-#{pane_status}",
|
||||||
"-t", session
|
"-t", session
|
||||||
], {
|
], {
|
||||||
maxBuffer: 1000 * 1024
|
maxBuffer: 1000 * 1024,
|
||||||
|
env: options.env,
|
||||||
}, function(err, stdout) {
|
}, function(err, stdout) {
|
||||||
var matches = /c9-pid-(\d+)-(\d)-/.exec(stdout);
|
var matches = /c9-pid-(\d+)-(\d)-/.exec(stdout);
|
||||||
var isDead = parseInt(matches && matches[2], 10);
|
var isDead = parseInt(matches && matches[2], 10);
|
||||||
|
@ -1771,7 +1775,7 @@ module.exports = function setup(fsOptions) {
|
||||||
|
|
||||||
args.push("list-sessions", "-F", getFormatString(sessionFormat));
|
args.push("list-sessions", "-F", getFormatString(sessionFormat));
|
||||||
|
|
||||||
return _execFile(TMUX, args, function(e, data) {
|
return _execFile(TMUX, args, options, function(e, data) {
|
||||||
var sessions = [];
|
var sessions = [];
|
||||||
(data || "").split("\n").forEach(function(str) {
|
(data || "").split("\n").forEach(function(str) {
|
||||||
if (!str)
|
if (!str)
|
||||||
|
@ -1826,7 +1830,7 @@ module.exports = function setup(fsOptions) {
|
||||||
args.push("-t", sessionId);
|
args.push("-t", sessionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
return _execFile(TMUX, args, function(e, data) {
|
return _execFile(TMUX, args, options, function(e, data) {
|
||||||
var panes = {};
|
var panes = {};
|
||||||
var clientsSection = false;
|
var clientsSection = false;
|
||||||
(data || "").split("\n").forEach(function(str) {
|
(data || "").split("\n").forEach(function(str) {
|
||||||
|
@ -1861,7 +1865,8 @@ module.exports = function setup(fsOptions) {
|
||||||
|
|
||||||
_execFile(TMUX,
|
_execFile(TMUX,
|
||||||
["-L", tmuxName, "-C", "kill-session", "-t", options.session],
|
["-L", tmuxName, "-C", "kill-session", "-t", options.session],
|
||||||
function(err){
|
options,
|
||||||
|
function(err) {
|
||||||
if (!options.command)
|
if (!options.command)
|
||||||
return callback(err, {});
|
return callback(err, {});
|
||||||
|
|
||||||
|
@ -1874,7 +1879,7 @@ module.exports = function setup(fsOptions) {
|
||||||
return callback(new Error("Missing session name"));
|
return callback(new Error("Missing session name"));
|
||||||
|
|
||||||
(function findSession(retries){
|
(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
|
if (err) stdout = ""; // This happens when the tmux server has not been started yet
|
||||||
|
|
||||||
var re = new RegExp("^" + escapeRegExp(options.session) + ":", "m");
|
var re = new RegExp("^" + escapeRegExp(options.session) + ":", "m");
|
||||||
|
@ -1980,8 +1985,6 @@ module.exports = function setup(fsOptions) {
|
||||||
|
|
||||||
function run(err){
|
function run(err){
|
||||||
if (err) return callback(err);
|
if (err) return callback(err);
|
||||||
_setDefaultEnv(options);
|
|
||||||
delete options.env.TMUX;
|
|
||||||
|
|
||||||
// HACK: workaround for tmux 2.2 bug:
|
// HACK: workaround for tmux 2.2 bug:
|
||||||
// tmux passes PATH to new sessions breaking rvm
|
// tmux passes PATH to new sessions breaking rvm
|
||||||
|
|
Ładowanie…
Reference in New Issue