feat: status command (relay+client sync), remove version from banner
This commit is contained in:
parent
d114c813fb
commit
6643a33570
2 changed files with 32 additions and 1 deletions
|
|
@ -33,7 +33,7 @@ fn trunc(s: &str, max_chars: usize) -> String {
|
||||||
|
|
||||||
fn banner() {
|
fn banner() {
|
||||||
println!();
|
println!();
|
||||||
println!(" {} HELIOS REMOTE v{} ({})", "☀".yellow().bold(), env!("CARGO_PKG_VERSION"), env!("GIT_COMMIT"));
|
println!(" {} HELIOS REMOTE ({})", "☀".yellow().bold(), env!("GIT_COMMIT"));
|
||||||
#[cfg(windows)]
|
#[cfg(windows)]
|
||||||
{
|
{
|
||||||
let admin = is_admin();
|
let admin = is_admin();
|
||||||
|
|
|
||||||
|
|
@ -253,6 +253,33 @@ def cmd_screenshot_window(args):
|
||||||
return out_path
|
return out_path
|
||||||
|
|
||||||
|
|
||||||
|
def cmd_status(args):
|
||||||
|
"""Show relay, server, and client version/commit in one call."""
|
||||||
|
import requests as _requests
|
||||||
|
# 1. Relay (public endpoint, no auth)
|
||||||
|
try:
|
||||||
|
r = _requests.get(f"{BASE_URL}/version", timeout=10)
|
||||||
|
relay = r.json() if r.ok else {"commit": f"HTTP {r.status_code}"}
|
||||||
|
except Exception as e:
|
||||||
|
relay = {"commit": str(e)}
|
||||||
|
|
||||||
|
# 2. Client (via session)
|
||||||
|
sid = resolve_session(args.session_id)
|
||||||
|
try:
|
||||||
|
r2 = _req("GET", f"/sessions/{sid}/version")
|
||||||
|
client = r2.json()
|
||||||
|
except Exception as e:
|
||||||
|
client = {"commit": str(e)}
|
||||||
|
|
||||||
|
relay_commit = relay.get("commit", "?")
|
||||||
|
client_commit = client.get("commit", "?")
|
||||||
|
in_sync = "✅" if relay_commit == client_commit else "⚠️ "
|
||||||
|
|
||||||
|
print(f" relay {relay_commit}")
|
||||||
|
print(f" client {client_commit}")
|
||||||
|
print(f" {in_sync} {'in sync' if relay_commit == client_commit else 'OUT OF SYNC — client needs update'}")
|
||||||
|
|
||||||
|
|
||||||
def cmd_server_version(_args):
|
def cmd_server_version(_args):
|
||||||
"""Get server version (no auth required)."""
|
"""Get server version (no auth required)."""
|
||||||
import requests as _requests
|
import requests as _requests
|
||||||
|
|
@ -437,6 +464,9 @@ def build_parser() -> argparse.ArgumentParser:
|
||||||
xp.add_argument("session_id")
|
xp.add_argument("session_id")
|
||||||
xp.add_argument("window_id", type=int)
|
xp.add_argument("window_id", type=int)
|
||||||
|
|
||||||
|
stp = sub.add_parser("status", help="Show relay + client commit and sync status")
|
||||||
|
stp.add_argument("session_id")
|
||||||
|
|
||||||
sub.add_parser("server-version", help="Get server version (no auth required)")
|
sub.add_parser("server-version", help="Get server version (no auth required)")
|
||||||
|
|
||||||
vp = sub.add_parser("version", help="Get client version for a session")
|
vp = sub.add_parser("version", help="Get client version for a session")
|
||||||
|
|
@ -502,6 +532,7 @@ def main():
|
||||||
"version": cmd_version,
|
"version": cmd_version,
|
||||||
"upload": cmd_upload,
|
"upload": cmd_upload,
|
||||||
"download": cmd_download,
|
"download": cmd_download,
|
||||||
|
"status": cmd_status,
|
||||||
"screenshot-window": cmd_screenshot_window,
|
"screenshot-window": cmd_screenshot_window,
|
||||||
"find-window": cmd_find_window,
|
"find-window": cmd_find_window,
|
||||||
"wait-for-window": cmd_wait_for_window,
|
"wait-for-window": cmd_wait_for_window,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue