2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-07-31 18:19:40 +00:00
Files
xcat-core/xCAT-client/bin/tcons
T
Vinícius Ferrão dda7605028 fix(tcons): make tcons work with modern tmux
tcons opens an rcons console per node in a tiled tmux session. On tmux 3.x
(shipped by all currently supported platforms) it no longer works:

  * The session was named "tcons.$$".  Modern tmux treats "." as the
    session:window.pane target separator, so "tmux attach -t tcons.$$" is
    parsed as session "tcons", pane "$$" and fails with "can't find
    session"/"can't find pane" -- tcons cannot attach to the session it
    just created.  Rename it to "tcons_$$".

  * The per-node "tmux select-pane", "tmux split" and "tmux select-layout"
    commands had no target.  When tcons is run from inside an existing tmux
    session (the common case) they act on the caller's current session
    instead of the detached tcons session, splitting the operator's own
    window.  Target every command explicitly at the tcons session.

  * Move the pane-border-status option inside the loop so the console title
    is set on each pane as it is created.

Validated on tmux next-3.4: the reworked script builds a 3-pane tiled
session with no errors, whereas the previous version's dotted session name
is unaddressable ("can't find pane").

Recovered from the unmerged lenovobuild branch (originals 5107b6ba1,
cefefa7d1, 6c72a2707, e040d24bb).

Co-authored-by: Jarrod Johnson <10814490+jjohnson42@users.noreply.github.com>
2026-07-22 21:00:37 -03:00

20 lines
661 B
Bash
Executable File

#!/bin/sh
f=1
p=0
for i in `nodels "$1"`; do
if [ "$f" = 1 ]; then
f=0
qdate=$((`date +%s`+5))
tmux new-session -d -s tcons_$$ -x 800 -y 800 "rcons $i;if [ \`date +%s\` -lt $qdate ]; then echo Press enter to close; read qdate; fi"
continue
fi
tmux select-pane -t tcons_$$
tmux set-option -t tcons_$$:$p pane-border-status top > /dev/null 2>&1 | cat > /dev/null
p=$((p+1))
qdate=$((`date +%s`+5))
tmux split -h -t tcons_$$ "rcons $i;if [ \`date +%s\` -lt $qdate ]; then echo Press enter to close; read qdate; fi"
tmux select-layout -t tcons_$$ tiled
done
tmux select-pane -t 0
tmux attach -t tcons_$$