#!/bin/sh # bee-boot-status — boot progress display on tty1. # Shows live service status until all bee services are done or failed, # then exits so getty can show the login prompt. # GUI (lightdm) starts independently without waiting for this. # Services to wait for before handing off to login prompt. CRITICAL="bee-preflight bee-nvidia bee-audit" # Additional services shown for information only. ALL="bee-preflight bee-network bee-nvidia bee-audit bee-web" svc_icon() { case "$(systemctl is-active "$1.service" 2>/dev/null)" in active) printf '\033[32m[ OK ]\033[0m' ;; failed) printf '\033[31m[ FAIL ]\033[0m' ;; activating) printf '\033[33m[ .. ]\033[0m' ;; *) printf '[ ]' ;; esac } all_critical_done() { for svc in $CRITICAL; do case "$(systemctl is-active "$svc.service" 2>/dev/null)" in active|failed|inactive) ;; *) return 1 ;; esac done return 0 } while true; do printf '\033[H\033[2J' printf '\n' printf ' \033[33m███████╗ █████╗ ███████╗██╗ ██╗ ██████╗ ███████╗███████╗\033[0m\n' printf ' \033[33m██╔════╝██╔══██╗██╔════╝╚██╗ ██╔╝ ██╔══██╗██╔════╝██╔════╝\033[0m\n' printf ' \033[33m█████╗ ███████║███████╗ ╚████╔╝ █████╗██████╔╝█████╗ █████╗\033[0m\n' printf ' \033[33m██╔══╝ ██╔══██║╚════██║ ╚██╔╝ ╚════╝██╔══██╗██╔══╝ ██╔══╝\033[0m\n' printf ' \033[33m███████╗██║ ██║███████║ ██║ ██████╔╝███████╗███████╗\033[0m\n' printf ' \033[33m╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝\033[0m\n' printf ' Hardware Audit LiveCD\n' printf '\n' for svc in $ALL; do printf ' %s %s\n' "$(svc_icon $svc)" "$svc" done printf '\n' if all_critical_done; then printf ' \033[1mSystem ready.\033[0m Audit is running in the background.\n' printf ' Web UI will be available at \033[1mhttp:///\033[0m when done.\n' printf '\n' sleep 2 break fi sleep 1 done