From 78c000785b7774932edb0d402a8a15f564e34697 Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Sun, 26 Apr 2026 00:27:43 -0300 Subject: [PATCH] fix(install): report semantic server version --- scripts/install/server.sh | 16 +++++++++++++--- testing/tests/server_install_script_contract.rs | 8 ++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/scripts/install/server.sh b/scripts/install/server.sh index f552955..caf7c15 100755 --- a/scripts/install/server.sh +++ b/scripts/install/server.sh @@ -11,6 +11,16 @@ REF=${LESAVKA_REF:-master} # fallback REPO_URL=${LESAVKA_REPO_URL:-} USER_HOME=$(getent passwd "$ORIG_USER" | cut -d: -f6) +manifest_package_version() { + local manifest=$1 + [[ -f $manifest ]] || return 1 + awk -F'"' ' + $0 ~ /^\[package\]/ { in_package=1; next } + in_package && $0 ~ /^\[/ { exit } + in_package && $0 ~ /^[[:space:]]*version[[:space:]]*=/ { print $2; exit } + ' "$manifest" +} + udc_state() { local udc="" udc=$(ls /sys/class/udc 2>/dev/null | head -n1 || true) @@ -614,12 +624,12 @@ else fi sudo systemctl restart lesavka-server -INSTALLED_VERSION=$(/usr/local/bin/lesavka-server --version 2>/dev/null | head -n1 || true) +INSTALLED_VERSION=$(manifest_package_version "$SRC_DIR/server/Cargo.toml" 2>/dev/null || true) INSTALLED_SHA=$(git -C "$SCRIPT_REPO_ROOT" rev-parse --short HEAD 2>/dev/null || true) echo "✅ lesavka-server installed and restarted..." if [[ -n $INSTALLED_VERSION || -n $INSTALLED_SHA ]]; then - echo "➡️ Installed: ${INSTALLED_VERSION:-lesavka-server}${INSTALLED_SHA:+ ($INSTALLED_SHA)}" + echo "➡️ Installed: lesavka-server ${INSTALLED_VERSION:-unknown}${INSTALLED_SHA:+ ($INSTALLED_SHA)}" fi echo "➡️ Status: sudo systemctl status lesavka-server --no-pager" echo "➡️ Logs: sudo journalctl -u lesavka-server -f --no-pager" -echo "✅ Installed version: ${INSTALLED_VERSION:-lesavka-server}${INSTALLED_SHA:+ ($INSTALLED_SHA)}" +echo "✅ Installed version: lesavka-server ${INSTALLED_VERSION:-unknown}${INSTALLED_SHA:+ ($INSTALLED_SHA)}" diff --git a/testing/tests/server_install_script_contract.rs b/testing/tests/server_install_script_contract.rs index bd83aa9..11bd809 100644 --- a/testing/tests/server_install_script_contract.rs +++ b/testing/tests/server_install_script_contract.rs @@ -47,8 +47,12 @@ fn server_install_reports_installed_version_and_revision() { "install script should print the installed build identity at the end" ); assert!( - SERVER_INSTALL.contains("lesavka-server --version"), - "install script should query the installed binary version" + SERVER_INSTALL.contains("manifest_package_version"), + "install script should read the package version from the synced source manifest" + ); + assert!( + SERVER_INSTALL.contains("\"$SRC_DIR/server/Cargo.toml\""), + "install script should report the server package semver from the server manifest" ); assert!( SERVER_INSTALL.contains("git -C \"$SCRIPT_REPO_ROOT\" rev-parse --short HEAD"),