feat: integrate demo TUI animations into real installer

Add install-tui.sh library with boot scan, logo decrypt reveal,
bouncing Bitcoin symbol progress bar, and celebration strobe.
The installer sources it if available, falls back to plain text
if missing (easy revert: just remove the source line).

Animations: CRT power-on scan, BIOS memory check simulation,
3D ASCII logo with character-by-character decrypt reveal,
progress bar with ₿ bouncing DVD-screensaver style during
long operations, logo color party on completion, flashing
"REMOVE THE USB DRIVE NOW" warning.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-31 21:23:29 +01:00
parent 73fb961b9a
commit 7070410b49
2 changed files with 321 additions and 8 deletions

View File

@@ -1551,13 +1551,26 @@ spinner() {
printf "\r%s %b✓ %s%b\n" "$PADS" "$ORANGE_BRIGHT" "$msg" "$NC"
}
clear
echo ""
echo -e "${PADS}${ORANGE}▄▀█ █▀▄ █▀▀ █ █ █ █▀█ █▀▀ █ ▄▀█ █▀▀ █▀█${NC}"
echo -e "${PADS}${ORANGE}█▀█ █▀▄ █ █▀█ █ █▀▀ ██▀ █ █▀█ █ █ █ █${NC}"
echo -e "${PADS}${ORANGE}▀ ▀ ▀ ▀ ▀▀▀ ▀ ▀ ▀ ▀ ▀▀▀ ▀▀▀ ▀ ▀ ▀▀▀ ▀▀▀${NC}"
typewrite "$(echo -e "${ORANGE_DIM}bitcoin node os${NC}")" 0.04
echo ""
# Source TUI library for install animations (graceful fallback if missing)
for _tui_path in \
"$BOOT_MEDIA/archipelago/scripts/lib/install-tui.sh" \
"/opt/archipelago/scripts/lib/install-tui.sh" \
"$(dirname "$0")/../scripts/lib/install-tui.sh"; do
[ -f "$_tui_path" ] && { source "$_tui_path" 2>/dev/null; break; }
done
if [ "${TUI_AVAILABLE:-}" = "1" ]; then
tui_welcome
tui_enable_progress_spinner
else
clear
echo ""
echo -e "${PADS}${ORANGE}▄▀█ █▀▄ █▀▀ █ █ █ █▀█ █▀▀ █ ▄▀█ █▀▀ █▀█${NC}"
echo -e "${PADS}${ORANGE}█▀█ █▀▄ █ █▀█ █ █▀▀ ██▀ █ █▀█ █ █ █ █${NC}"
echo -e "${PADS}${ORANGE}▀ ▀ ▀ ▀ ▀▀▀ ▀ ▀ ▀ ▀ ▀▀▀ ▀▀▀ ▀ ▀ ▀▀▀ ▀▀▀${NC}"
typewrite "$(echo -e "${ORANGE_DIM}bitcoin node os${NC}")" 0.04
echo ""
fi
# Check required tools are present (should be bundled in ISO)
step "Checking tools"
@@ -2662,6 +2675,10 @@ umount /mnt/target 2>/dev/null || true
echo ""
hrule
echo ""
# Celebration animation if TUI available
[ "${TUI_AVAILABLE:-}" = "1" ] && tui_complete
p "${ORANGE_BRIGHT} ✓ Installation Complete${NC}"
echo ""
p "${ORANGE_DIM} After reboot, access from any device:${NC}"
@@ -2681,7 +2698,11 @@ echo 1 > /proc/sys/kernel/printk 2>/dev/null || true
# All done inline — no separate script needed (avoids /bin/bash dependency on squashfs)
echo ""
p "${ORANGE}>>> REMOVE THE USB DRIVE NOW <<<${NC}"
if [ "${TUI_AVAILABLE:-}" = "1" ]; then
tui_flash_remove_usb
else
p "${ORANGE}>>> REMOVE THE USB DRIVE NOW <<<${NC}"
fi
echo ""
p "${ORANGE_DIM}Press Enter to reboot (or wait 30 seconds)${NC}"