installer: tolerate missing duration on finish

This commit is contained in:
Ryan Hughes committed 2026-05-23 05:29:53 -04:00
1 parent 1d656af51d
commit fd12ace8bc
2 files changed
+24 -2

No files matched your search

+21
View File
@@ -75,6 +75,19 @@ LOG
EOF EOF
chmod +x "$success_worker" chmod +x "$success_worker"
no_duration_worker="$tmp/no-duration-worker"
cat >"$no_duration_worker" <<EOF
#!/usr/bin/env bash
set -euo pipefail
state="\$1"
mkdir -p "\$(dirname "\$state")"
python - "\$state" "Validating boot setup" <<'PY'
$write_state_py
PY
sleep 0.2
EOF
chmod +x "$no_duration_worker"
fail_worker="$tmp/fail-worker" fail_worker="$tmp/fail-worker"
cat >"$fail_worker" <<EOF cat >"$fail_worker" <<EOF
#!/usr/bin/env bash #!/usr/bin/env bash
@@ -98,6 +111,14 @@ OMARCHY_UI_AUTO_REBOOT=no OMARCHY_PATH="$OMARCHY_PATH_FOR_TEST" script -qfec \
assert_contains "$success_capture" "Installing Omarchy" assert_contains "$success_capture" "Installing Omarchy"
assert_contains "$success_capture" "Installed in 1m 40s" assert_contains "$success_capture" "Installed in 1m 40s"
no_duration_state="$tmp/no-duration-state.json"
no_duration_log="$tmp/no-duration.log"
no_duration_capture="$tmp/no-duration.capture"
OMARCHY_UI_AUTO_REBOOT=no OMARCHY_PATH="$OMARCHY_PATH_FOR_TEST" script -qfec \
"$DASHBOARD '$no_duration_log' '$no_duration_state' -- '$no_duration_worker' '$no_duration_state'" \
"$no_duration_capture" >/dev/null
assert_contains "$no_duration_capture" "Finished installing"
fail_state="$tmp/fail-state.json" fail_state="$tmp/fail-state.json"
fail_log="$tmp/fail.log" fail_log="$tmp/fail.log"
fail_capture="$tmp/fail.capture" fail_capture="$tmp/fail.capture"
@@ -267,9 +267,10 @@ install_duration() {
[[ -n $line ]] || continue [[ -n $line ]] || continue
duration="${line#*:}" duration="${line#*:}"
duration="${duration#${duration%%[![:space:]]*}}" duration="${duration#${duration%%[![:space:]]*}}"
[[ -n $duration ]] && { printf '%s' "$duration"; return; } [[ -n $duration ]] && { printf '%s' "$duration"; return 0; }
done done
done done
return 0
} }
render_finish() { render_finish() {
@@ -281,7 +282,7 @@ render_finish() {
else else
render_logo >"$TTY_PATH" render_logo >"$TTY_PATH"
fi fi
duration="$(install_duration)" duration="$(install_duration || true)"
message="Finished installing" message="Finished installing"
[[ -n $duration ]] && message="Installed in $duration" [[ -n $duration ]] && message="Installed in $duration"
{ {