Skip to content

Commit c7b17a3

Browse files
committed
check both client and server version
1 parent 3384a96 commit c7b17a3

2 files changed

Lines changed: 38 additions & 2 deletions

File tree

src/tvmux/cli/main.py

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,43 @@
66
from .server import server
77
from .record import rec
88
from ..config import load_config, set_config
9+
from ..connection import Connection
910
from .. import __version__
1011

1112

13+
def print_version(ctx, param, value):
14+
"""Print version information for client and server."""
15+
if not value or ctx.resilient_parsing:
16+
return
17+
18+
click.echo(f"tvmux client version: {__version__}")
19+
20+
# Try to get server version if running
21+
conn = Connection()
22+
if conn.is_running:
23+
try:
24+
api = conn.client()
25+
response = api.get("/version")
26+
if response.status_code == 200:
27+
server_version = response.json().get("version", "unknown")
28+
click.echo(f"tvmux server version: {server_version}")
29+
else:
30+
click.echo("tvmux server version: unable to retrieve")
31+
except Exception:
32+
click.echo("tvmux server version: error connecting")
33+
else:
34+
click.echo("tvmux server: not running")
35+
36+
ctx.exit()
37+
38+
1239
@click.group()
1340
@click.option('--log-level', default='INFO', type=click.Choice(['DEBUG', 'INFO', 'WARNING', 'ERROR']),
1441
help='Set logging level')
1542
@click.option('--config-file', type=click.Path(exists=True),
1643
help='Path to configuration file')
17-
@click.version_option(version=__version__)
44+
@click.option('--version', is_flag=True, callback=print_version,
45+
expose_value=False, is_eager=True, help='Show version information')
1846
def cli(log_level, config_file):
1947
"""Per-window recorder for tmux."""
2048
os.environ['TVMUX_LOG_LEVEL'] = log_level

src/tvmux/server/main.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from .state import server_dir, recorders, SERVER_HOST
1212
from .routers import session, window, panes, callback, recording
1313
from ..config import get_config
14+
from .. import __version__
1415

1516

1617
def setup_logging():
@@ -93,10 +94,17 @@ async def root():
9394
return {
9495
"status": "running",
9596
"pid": os.getpid(),
96-
"recorders": len(recorders)
97+
"recorders": len(recorders),
98+
"version": __version__
9799
}
98100

99101

102+
@app.get("/version")
103+
async def version():
104+
"""Get server version."""
105+
return {"version": __version__}
106+
107+
100108

101109

102110
def cleanup_and_exit(signum=None, frame=None):

0 commit comments

Comments
 (0)