install: fix peer template resolution in self-update path
This commit is contained in:
parent
9732272d17
commit
eb28ada6e2
@ -700,18 +700,22 @@ resolve_build_target() {
|
||||
install_config_template() {
|
||||
local template="$1"
|
||||
local dest="$2"
|
||||
local src modern legacy
|
||||
local src legacy
|
||||
local -a modern_candidates=()
|
||||
local -a legacy_candidates=()
|
||||
|
||||
modern="configs/ananke.${template}.yaml"
|
||||
case "${template}" in
|
||||
coordinator)
|
||||
legacy="configs/hecate.titan-db.yaml"
|
||||
modern_candidates=("configs/ananke.coordinator.yaml" "configs/ananke.titan-db.yaml")
|
||||
legacy_candidates=("configs/hecate.titan-db.yaml")
|
||||
;;
|
||||
peer)
|
||||
legacy="configs/hecate.tethys.yaml"
|
||||
modern_candidates=("configs/ananke.peer.yaml" "configs/ananke.tethys.yaml")
|
||||
legacy_candidates=("configs/hecate.tethys.yaml")
|
||||
;;
|
||||
example)
|
||||
legacy="configs/hecate.example.yaml"
|
||||
modern_candidates=("configs/ananke.example.yaml")
|
||||
legacy_candidates=("configs/hecate.example.yaml")
|
||||
;;
|
||||
*)
|
||||
echo "[install] unknown config template key: ${template}" >&2
|
||||
@ -719,12 +723,14 @@ install_config_template() {
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ -f "${modern}" ]]; then
|
||||
src="${modern}"
|
||||
for src in "${modern_candidates[@]}"; do
|
||||
if [[ -f "${src}" ]]; then
|
||||
install -m 0640 "${src}" "${dest}"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
|
||||
for legacy in "${legacy_candidates[@]}"; do
|
||||
if [[ -f "${legacy}" ]]; then
|
||||
src="$(mktemp)"
|
||||
legacy_path_rewrite "${legacy}" "${src}"
|
||||
@ -732,8 +738,9 @@ install_config_template() {
|
||||
rm -f "${src}"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
|
||||
echo "[install] missing both modern and legacy config templates for '${template}'." >&2
|
||||
echo "[install] missing config template sources for '${template}'. modern=[${modern_candidates[*]}] legacy=[${legacy_candidates[*]}]" >&2
|
||||
return 1
|
||||
}
|
||||
|
||||
|
||||
@ -105,6 +105,9 @@ cd "${REPO_DIR}"
|
||||
echo "[quality] lint"
|
||||
./scripts/lint.sh
|
||||
|
||||
echo "[quality] installer template contracts"
|
||||
./scripts/verify_install_templates.sh
|
||||
|
||||
echo "[quality] per-file coverage gate (95%)"
|
||||
cd testing
|
||||
ANANKE_ENFORCE_COVERAGE=1 ANANKE_PER_FILE_COVERAGE_TARGET=95 go test ./coverage -run TestPerFileCoverageReport -count=1 -v
|
||||
|
||||
40
scripts/verify_install_templates.sh
Executable file
40
scripts/verify_install_templates.sh
Executable file
@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "${REPO_DIR}"
|
||||
|
||||
check_template() {
|
||||
local template="$1"
|
||||
shift
|
||||
local found=""
|
||||
local candidate
|
||||
for candidate in "$@"; do
|
||||
if [[ -f "${candidate}" ]]; then
|
||||
found="${candidate}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -z "${found}" ]]; then
|
||||
echo "[template-contract] ${template}: no candidate exists: $*" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "[template-contract] ${template}: ${found}"
|
||||
return 0
|
||||
}
|
||||
|
||||
check_template coordinator \
|
||||
"configs/ananke.coordinator.yaml" \
|
||||
"configs/ananke.titan-db.yaml" \
|
||||
"configs/hecate.titan-db.yaml"
|
||||
|
||||
check_template peer \
|
||||
"configs/ananke.peer.yaml" \
|
||||
"configs/ananke.tethys.yaml" \
|
||||
"configs/hecate.tethys.yaml"
|
||||
|
||||
check_template example \
|
||||
"configs/ananke.example.yaml" \
|
||||
"configs/hecate.example.yaml"
|
||||
Loading…
x
Reference in New Issue
Block a user