feat(tmux): ensure automatic session logging to logs/tmux/<session>.log via pipe-pane

This commit is contained in:
operator
2026-10-05 16:24:34 +00:00
parent b828ce1985
commit 973dbc3636
+14 -1
View File
@@ -10,10 +10,19 @@ import subprocess
import argparse import argparse
SOCKET_PATH = "/tmp/tmux-muse.sock" SOCKET_PATH = "/tmp/tmux-muse.sock"
LOG_DIR = "/home/super/Projects/NetVM/logs/tmux"
TMUX_BIN = "/home/super/.local/bin/tmux" TMUX_BIN = "/home/super/.local/bin/tmux"
if not os.path.exists(TMUX_BIN): if not os.path.exists(TMUX_BIN):
TMUX_BIN = "tmux" TMUX_BIN = "tmux"
def _ensure_logging(session):
try:
os.makedirs(LOG_DIR, exist_ok=True)
log_file = os.path.join(LOG_DIR, f"{session}.log")
_run_tmux("pipe-pane", "-o", "-t", session, f"cat >> {log_file}")
except Exception:
pass
def _run_tmux(*args, capture=True): def _run_tmux(*args, capture=True):
cmd = [TMUX_BIN, "-S", SOCKET_PATH] + list(args) cmd = [TMUX_BIN, "-S", SOCKET_PATH] + list(args)
res = subprocess.run(cmd, capture_output=capture, text=True) res = subprocess.run(cmd, capture_output=capture, text=True)
@@ -38,7 +47,8 @@ def cmd_new(args):
rc, out, err = _run_tmux(*t_args) rc, out, err = _run_tmux(*t_args)
if rc == 0: if rc == 0:
print(f"✔ Created session '{session}' on {SOCKET_PATH}") _ensure_logging(session)
print(f"✔ Created session '{session}' on {SOCKET_PATH} (logging to logs/tmux/{session}.log)")
return 0 return 0
else: else:
print(f"Failed to create session: {err.strip() or out.strip()}", file=sys.stderr) print(f"Failed to create session: {err.strip() or out.strip()}", file=sys.stderr)
@@ -55,6 +65,9 @@ def cmd_send(args):
# Auto-create if not exists # Auto-create if not exists
print(f"Notice: Session '{session}' does not exist; creating now...", file=sys.stderr) print(f"Notice: Session '{session}' does not exist; creating now...", file=sys.stderr)
_run_tmux("new-session", "-d", "-s", session) _run_tmux("new-session", "-d", "-s", session)
_ensure_logging(session)
else:
_ensure_logging(session)
t_args = ["send-keys", "-t", session, keys] t_args = ["send-keys", "-t", session, keys]
if enter: if enter: