From be29e2398ee46f882b2378a7d61ac867f8631a7b Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Mon, 4 May 2026 01:01:08 -0300 Subject: [PATCH] fix: auto-detect server RC matrix checkout --- Cargo.lock | 6 ++--- client/Cargo.toml | 2 +- common/Cargo.toml | 2 +- .../manual/run_server_to_rc_mode_matrix.sh | 24 ++++++++++++++++++- server/Cargo.toml | 2 +- .../client_manual_sync_script_contract.rs | 5 ++++ 6 files changed, 34 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c459ece..3f5f41b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1652,7 +1652,7 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "lesavka_client" -version = "0.19.11" +version = "0.19.12" dependencies = [ "anyhow", "async-stream", @@ -1686,7 +1686,7 @@ dependencies = [ [[package]] name = "lesavka_common" -version = "0.19.11" +version = "0.19.12" dependencies = [ "anyhow", "base64", @@ -1698,7 +1698,7 @@ dependencies = [ [[package]] name = "lesavka_server" -version = "0.19.11" +version = "0.19.12" dependencies = [ "anyhow", "base64", diff --git a/client/Cargo.toml b/client/Cargo.toml index c4ca9a5..b04d774 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -4,7 +4,7 @@ path = "src/main.rs" [package] name = "lesavka_client" -version = "0.19.11" +version = "0.19.12" edition = "2024" [dependencies] diff --git a/common/Cargo.toml b/common/Cargo.toml index 7c15bc5..302e09d 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lesavka_common" -version = "0.19.11" +version = "0.19.12" edition = "2024" build = "build.rs" diff --git a/scripts/manual/run_server_to_rc_mode_matrix.sh b/scripts/manual/run_server_to_rc_mode_matrix.sh index 726e371..2d1733b 100755 --- a/scripts/manual/run_server_to_rc_mode_matrix.sh +++ b/scripts/manual/run_server_to_rc_mode_matrix.sh @@ -16,7 +16,7 @@ LESAVKA_SERVER_CONNECT_HOST=${LESAVKA_SERVER_CONNECT_HOST:-38.28.125.112} LESAVKA_SERVER_ADDR=${LESAVKA_SERVER_ADDR:-auto} LESAVKA_SERVER_SCHEME=${LESAVKA_SERVER_SCHEME:-https} LESAVKA_TLS_DOMAIN=${LESAVKA_TLS_DOMAIN:-lesavka-server} -LESAVKA_SERVER_REPO=${LESAVKA_SERVER_REPO:-/home/brad/Development/lesavka} +LESAVKA_SERVER_REPO=${LESAVKA_SERVER_REPO:-auto} SSH_OPTS=${SSH_OPTS:-"-o BatchMode=yes -o ConnectTimeout=30"} LESAVKA_SERVER_RC_MODES=${LESAVKA_SERVER_RC_MODES:-640x480@20,1280x720@30,1920x1080@20,1920x1080@30} @@ -117,6 +117,28 @@ ref=$2 width=$3 height=$4 fps=$5 +if [[ "${repo}" == "auto" ]]; then + for candidate in \ + "${HOME}/Development/lesavka" \ + /home/theia/Development/lesavka \ + /home/brad/Development/lesavka \ + "${HOME}/lesavka" \ + /opt/lesavka \ + /srv/lesavka \ + /tmp/lesavka-server-rc-matrix-source + do + if [[ -d "${candidate}/.git" && -f "${candidate}/scripts/install/server.sh" ]]; then + repo="${candidate}" + break + fi + done +fi +if [[ "${repo}" == "auto" || ! -f "${repo}/scripts/install/server.sh" ]]; then + printf 'could not find a Lesavka checkout on this server host.\n' >&2 + printf 'Set LESAVKA_SERVER_REPO=/path/to/lesavka, or create one of the standard checkout paths.\n' >&2 + exit 65 +fi +printf ' ↪ using server repo: %s\n' "${repo}" cd "${repo}" git fetch --all --prune git checkout "${ref}" diff --git a/server/Cargo.toml b/server/Cargo.toml index 6cc4c70..94c7d37 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -10,7 +10,7 @@ bench = false [package] name = "lesavka_server" -version = "0.19.11" +version = "0.19.12" edition = "2024" autobins = false diff --git a/testing/tests/client_manual_sync_script_contract.rs b/testing/tests/client_manual_sync_script_contract.rs index 4cf9b6b..83bc3ed 100644 --- a/testing/tests/client_manual_sync_script_contract.rs +++ b/testing/tests/client_manual_sync_script_contract.rs @@ -187,9 +187,14 @@ fn upstream_sync_script_tunnels_auto_server_addr_through_ssh() { fn server_rc_mode_matrix_validates_advertised_uvc_profiles() { for expected in [ "LESAVKA_SERVER_RC_MODES=${LESAVKA_SERVER_RC_MODES:-640x480@20,1280x720@30,1920x1080@20,1920x1080@30}", + "LESAVKA_SERVER_REPO=${LESAVKA_SERVER_REPO:-auto}", "LESAVKA_SERVER_RC_DEFAULT_VIDEO_DELAY_US=${LESAVKA_SERVER_RC_DEFAULT_VIDEO_DELAY_US:-170000}", "LESAVKA_SERVER_RC_MODE_DELAYS_US=${LESAVKA_SERVER_RC_MODE_DELAYS_US:-640x480@20=170000,1280x720@30=170000,1920x1080@20=170000,1920x1080@30=170000}", "LESAVKA_SERVER_RC_RECONFIGURE=${LESAVKA_SERVER_RC_RECONFIGURE:-0}", + "could not find a Lesavka checkout on this server host", + "Set LESAVKA_SERVER_REPO=/path/to/lesavka", + "/home/theia/Development/lesavka", + "using server repo:", "LESAVKA_SERVER_RC_FRESHNESS_MAX_AGE_MS=${LESAVKA_SERVER_RC_FRESHNESS_MAX_AGE_MS:-350}", "LESAVKA_SERVER_RC_MAX_VIDEO_HICCUPS=${LESAVKA_SERVER_RC_MAX_VIDEO_HICCUPS:-0}", "LESAVKA_SERVER_RC_MAX_AUDIO_HICCUPS=${LESAVKA_SERVER_RC_MAX_AUDIO_HICCUPS:-0}",