fix: use remote tty sudo for RC matrix
This commit is contained in:
parent
b641ac35b4
commit
d33c5ebbaf
6
Cargo.lock
generated
6
Cargo.lock
generated
@ -1652,7 +1652,7 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_client"
|
name = "lesavka_client"
|
||||||
version = "0.19.13"
|
version = "0.19.14"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-stream",
|
"async-stream",
|
||||||
@ -1686,7 +1686,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_common"
|
name = "lesavka_common"
|
||||||
version = "0.19.13"
|
version = "0.19.14"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64",
|
"base64",
|
||||||
@ -1698,7 +1698,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_server"
|
name = "lesavka_server"
|
||||||
version = "0.19.13"
|
version = "0.19.14"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64",
|
"base64",
|
||||||
|
|||||||
@ -4,7 +4,7 @@ path = "src/main.rs"
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "lesavka_client"
|
name = "lesavka_client"
|
||||||
version = "0.19.13"
|
version = "0.19.14"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "lesavka_common"
|
name = "lesavka_common"
|
||||||
version = "0.19.13"
|
version = "0.19.14"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
build = "build.rs"
|
build = "build.rs"
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,12 @@ set -euo pipefail
|
|||||||
SCRIPT_DIR="$(cd -- "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
SCRIPT_DIR="$(cd -- "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||||
REPO_ROOT="$(cd -- "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd)"
|
REPO_ROOT="$(cd -- "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd)"
|
||||||
|
|
||||||
|
if (( EUID == 0 )); then
|
||||||
|
printf 'Do not run this matrix with local sudo.\n' >&2
|
||||||
|
printf 'Run it as your normal workstation user; the script will request sudo on the remote server host only when reconfiguring UVC.\n' >&2
|
||||||
|
exit 64
|
||||||
|
fi
|
||||||
|
|
||||||
TETHYS_HOST=${TETHYS_HOST:-tethys}
|
TETHYS_HOST=${TETHYS_HOST:-tethys}
|
||||||
LESAVKA_SERVER_HOST=${LESAVKA_SERVER_HOST:-theia}
|
LESAVKA_SERVER_HOST=${LESAVKA_SERVER_HOST:-theia}
|
||||||
LESAVKA_SERVER_CONNECT_HOST=${LESAVKA_SERVER_CONNECT_HOST:-38.28.125.112}
|
LESAVKA_SERVER_CONNECT_HOST=${LESAVKA_SERVER_CONNECT_HOST:-38.28.125.112}
|
||||||
@ -106,20 +112,16 @@ reconfigure_server_mode() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ssh ${SSH_OPTS} "${LESAVKA_SERVER_HOST}" bash -s -- \
|
local prepare_output repo interval remote_cmd
|
||||||
|
prepare_output="$(
|
||||||
|
ssh ${SSH_OPTS} "${LESAVKA_SERVER_HOST}" bash -s -- \
|
||||||
"${LESAVKA_SERVER_REPO}" \
|
"${LESAVKA_SERVER_REPO}" \
|
||||||
"${LESAVKA_SERVER_RC_RECONFIGURE_REF}" \
|
"${LESAVKA_SERVER_RC_RECONFIGURE_REF}" \
|
||||||
"${LESAVKA_SERVER_RC_RECONFIGURE_UPDATE}" \
|
"${LESAVKA_SERVER_RC_RECONFIGURE_UPDATE}" <<'REMOTE_PREPARE'
|
||||||
"${width}" \
|
|
||||||
"${height}" \
|
|
||||||
"${fps}" <<'REMOTE_RECONFIGURE'
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
repo=$1
|
repo=$1
|
||||||
ref=$2
|
ref=$2
|
||||||
update_checkout=$3
|
update_checkout=$3
|
||||||
width=$4
|
|
||||||
height=$5
|
|
||||||
fps=$6
|
|
||||||
if [[ "${repo}" == "auto" ]]; then
|
if [[ "${repo}" == "auto" ]]; then
|
||||||
for candidate in \
|
for candidate in \
|
||||||
"${HOME}/Development/lesavka" \
|
"${HOME}/Development/lesavka" \
|
||||||
@ -155,15 +157,26 @@ if [[ "${update_checkout}" != "0" ]]; then
|
|||||||
else
|
else
|
||||||
printf ' ↪ leaving server checkout untouched; set LESAVKA_SERVER_RC_RECONFIGURE_UPDATE=1 to update it first\n'
|
printf ' ↪ leaving server checkout untouched; set LESAVKA_SERVER_RC_RECONFIGURE_UPDATE=1 to update it first\n'
|
||||||
fi
|
fi
|
||||||
sudo env \
|
printf '__LESAVKA_SERVER_REPO__=%s\n' "${repo}"
|
||||||
LESAVKA_REF="${ref}" \
|
REMOTE_PREPARE
|
||||||
LESAVKA_INSTALL_UVC_CODEC=mjpeg \
|
)"
|
||||||
LESAVKA_UVC_WIDTH="${width}" \
|
printf '%s\n' "${prepare_output}" | sed '/^__LESAVKA_SERVER_REPO__=/d'
|
||||||
LESAVKA_UVC_HEIGHT="${height}" \
|
repo="$(awk -F= '/^__LESAVKA_SERVER_REPO__=/{print $2; exit}' <<<"${prepare_output}")"
|
||||||
LESAVKA_UVC_FPS="${fps}" \
|
if [[ -z "${repo}" ]]; then
|
||||||
LESAVKA_UVC_INTERVAL="$((10000000 / fps))" \
|
printf 'could not determine the prepared server repo path on %s\n' "${LESAVKA_SERVER_HOST}" >&2
|
||||||
./scripts/install/server.sh
|
return 65
|
||||||
REMOTE_RECONFIGURE
|
fi
|
||||||
|
|
||||||
|
interval=$((10000000 / fps))
|
||||||
|
printf -v remote_cmd \
|
||||||
|
'cd %q && sudo env LESAVKA_REF=%q LESAVKA_INSTALL_UVC_CODEC=mjpeg LESAVKA_UVC_WIDTH=%q LESAVKA_UVC_HEIGHT=%q LESAVKA_UVC_FPS=%q LESAVKA_UVC_INTERVAL=%q ./scripts/install/server.sh' \
|
||||||
|
"${repo}" \
|
||||||
|
"${LESAVKA_SERVER_RC_RECONFIGURE_REF}" \
|
||||||
|
"${width}" \
|
||||||
|
"${height}" \
|
||||||
|
"${fps}" \
|
||||||
|
"${interval}"
|
||||||
|
ssh -tt ${SSH_OPTS} "${LESAVKA_SERVER_HOST}" "${remote_cmd}"
|
||||||
}
|
}
|
||||||
|
|
||||||
write_mode_result() {
|
write_mode_result() {
|
||||||
|
|||||||
@ -10,7 +10,7 @@ bench = false
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "lesavka_server"
|
name = "lesavka_server"
|
||||||
version = "0.19.13"
|
version = "0.19.14"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
autobins = false
|
autobins = false
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user