installer: harden dashboard finish transition

This commit is contained in:
Ryan Hughes committed 2026-05-23 10:02:36 -04:00
1 parent fd12ace8bc
commit 8d1d3c906d
2 files changed
+27

No files matched your search

+2
View File
@@ -132,6 +132,8 @@ if [[ $fail_status -ne 7 ]]; then
echo "Expected failure worker status 7, got $fail_status" >&2
exit 1
fi
assert_contains "$fail_log" "[dashboard] installer child exited with status 7"
assert_contains "$fail_log" "[dashboard] last installer phase: Installing Arch + Omarchy"
assert_not_contains "$fail_capture" "Installed in"
assert_not_contains "$fail_capture" "Finished installing"
@@ -332,12 +332,37 @@ set -e
child_pid=""
child_pgid=""
echo "[dashboard] installer child exited with status $status" >>"$LOG_FILE"
if (( status != 0 )); then
if [[ -f $STATE_FILE ]]; then
python - "$STATE_FILE" >>"$LOG_FILE" <<'PY' 2>/dev/null || true
import json, sys
try:
state = json.load(open(sys.argv[1]))
except Exception:
raise SystemExit(0)
phase = state.get("current_phase")
if phase:
print(f"[dashboard] last installer phase: {phase}")
PY
fi
printf '%s%s' "$SHOW_CURSOR" "$CLEAR" >"$TTY_PATH"
exit "$status"
fi
set +e
render_finish
finish_render_status=$?
set -e
if (( finish_render_status != 0 )); then
echo "[dashboard] finish screen render failed with status $finish_render_status; using fallback" >>"$LOG_FILE"
{
printf '%s%s' "$SHOW_CURSOR" "$CLEAR"
printf '\nFinished installing\n\n'
} >"$TTY_PATH" 2>/dev/null || true
fi
if [[ ${OMARCHY_UI_AUTO_REBOOT:-} == "no" ]]; then
exit 0
fi