"""
Generic tmux helpers
"""
import ubelt as ub
[docs]class tmux:
[docs] @staticmethod
def list_sessions():
info = ub.cmd('tmux list-sessions')
sessions = []
for line in info['out'].split('\n'):
line = line.strip()
if line:
session_id, rest = line.split(':', 1)
sessions.append({
'id': session_id,
'rest': rest
})
return sessions
[docs] @staticmethod
def _kill_session_command(target_session):
return f'tmux kill-session -t {target_session}'
[docs] @staticmethod
def _capture_pane_command(target_session):
# Relly should take a target pane argument
return f'tmux capture-pane -p -t "{target_session}:0.0"'
[docs] @staticmethod
def capture_pane(target_session, verbose=3):
return ub.cmd(tmux._capture_pane_command(target_session), verbose=verbose)
[docs] @staticmethod
def kill_session(target_session, verbose=3):
return ub.cmd(tmux._kill_session_command(target_session), verbose=verbose)