Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_session_check_name(session_name, raises, exc_msg_regex):
if raises:
with pytest.raises(BadSessionName) as exc_info:
session_check_name(session_name)
assert exc_info.match(exc_msg_regex)
else:
session_check_name(session_name)
def switch_client(self, target_session):
"""
``$ tmux switch-client``.
Parameters
----------
target_session : str
name of the session. fnmatch(3) works.
Raises
------
:exc:`exc.BadSessionName`
"""
session_check_name(target_session)
proc = self.cmd('switch-client', '-t%s' % target_session)
if proc.stderr:
raise exc.LibTmuxException(proc.stderr)
$ tmux new-session -n
window_command : str
execute a command on starting the session. The window will close
when the command exits. NOTE: When this command exits the window
will close. This feature is useful for long-running processes
where the closing of the window upon completion is desired.
Returns
-------
:class:`Session`
Raises
------
:exc:`exc.BadSessionName`
"""
session_check_name(session_name)
if self.has_session(session_name):
if kill_session:
self.cmd('kill-session', '-t%s' % session_name)
logger.info('session %s exists. killed it.' % session_name)
else:
raise exc.TmuxSessionExists('Session named %s exists' % session_name)
logger.debug('creating session %s' % session_name)
sformats = formats.SESSION_FORMATS
tmux_formats = ['#{%s}' % f for f in sformats]
env = os.environ.get('TMUX')
if env:
Rename session and return new :class:`Session` object.
Parameters
----------
new_name : str
new session name
Returns
-------
:class:`Session`
Raises
------
:exc:`exc.BadSessionName`
"""
session_check_name(new_name)
proc = self.cmd('rename-session', new_name)
if proc.stderr:
if has_version('2.7') and 'no current client' in proc.stderr:
"""tmux 2.7 raises "no current client" warning on BSD systems.
Should be fixed next release:
- https://www.mail-archive.com/tech@openbsd.org/msg45186.html
- https://marc.info/?l=openbsd-cvs&m=152183263526828&w=2
"""
pass
else:
raise exc.LibTmuxException(proc.stderr)
target_session : str
session name
exact : bool
match the session name exactly. tmux uses fnmatch by default.
Internally prepends ``=`` to the session in ``$ tmux has-session``.
tmux 2.1 and up only.
Raises
------
:exc:`exc.BadSessionName`
Returns
-------
bool
"""
session_check_name(target_session)
if exact and has_gte_version('2.1'):
target_session = '={}'.format(target_session)
proc = self.cmd('has-session', '-t%s' % target_session)
if not proc.returncode:
return True
return False
Parameters
----------
target_session : str, optional
target_session: str. note this accepts ``fnmatch(3)``. 'asdf' will
kill 'asdfasd'.
Returns
-------
:class:`Server`
Raises
------
:exc:`exc.BadSessionName`
"""
session_check_name(target_session)
proc = self.cmd('kill-session', '-t%s' % target_session)
if proc.stderr:
raise exc.LibTmuxException(proc.stderr)
return self
def attach_session(self, target_session=None):
"""``$ tmux attach-session`` aka alias: ``$ tmux attach``.
Parameters
----------
target_session : str
name of the session. fnmatch(3) works.
Raises
------
:exc:`exc.BadSessionName`
"""
session_check_name(target_session)
tmux_args = tuple()
if target_session:
tmux_args += ('-t%s' % target_session,)
proc = self.cmd('attach-session', *tmux_args)
if proc.stderr:
raise exc.LibTmuxException(proc.stderr)