diff --git a/rpi/banner.sh b/rpi/banner.sh new file mode 100644 index 0000000..03f146c --- /dev/null +++ b/rpi/banner.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# Stegasoo Banner/Header Template +# Source this file to use the banner functions +# +# Usage: +# source "$(dirname "${BASH_SOURCE[0]}")/banner.sh" +# print_banner "Raspberry Pi Setup" +# print_gradient_line + +# Colors +STEGASOO_GOLD='\033[38;5;220m' +STEGASOO_GRAY='\033[0;90m' +STEGASOO_WHITE='\033[1;37m' +STEGASOO_GREEN='\033[0;32m' +STEGASOO_NC='\033[0m' + +# Gradient line (purple -> blue) +print_gradient_line() { + echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" +} + +# Starfield decoration line +print_starfield() { + echo -e "${STEGASOO_GRAY} · . · . * · . * · . * · . * · . * · . ·${STEGASOO_NC}" +} + +# ASCII logo (gold) +print_logo() { + echo -e "${STEGASOO_GOLD} ___ _____ ___ ___ _ ___ ___ ___${STEGASOO_NC}" + echo -e "${STEGASOO_GOLD} / __||_ _|| __| / __| /_\\ / __| / _ \\ / _ \\\\${STEGASOO_NC}" + echo -e "${STEGASOO_GOLD} \\__ \\ | | | _| | (_ | / _ \\ \\__ \\ | (_) || (_) |${STEGASOO_NC}" + echo -e "${STEGASOO_GOLD} |___/ |_| |___| \\___//_/ \\_\\|___/ \\___/ \\___/${STEGASOO_NC}" +} + +# Full banner with optional subtitle +# Usage: print_banner "Subtitle Text" +print_banner() { + local subtitle="$1" + echo "" + print_gradient_line + print_starfield + print_logo + print_starfield + print_gradient_line + if [ -n "$subtitle" ]; then + echo -e "${STEGASOO_WHITE} ${subtitle}${STEGASOO_NC}" + print_gradient_line + fi +} + +# Completion banner (green title) +# Usage: print_complete_banner "Setup Complete!" +print_complete_banner() { + local title="$1" + echo "" + print_gradient_line + print_starfield + print_logo + print_starfield + print_gradient_line + echo -e "\033[1;32m ${title}\033[0m" + print_gradient_line +} diff --git a/rpi/first-boot-wizard.sh b/rpi/first-boot-wizard.sh index 87d0941..59dc4fb 100755 --- a/rpi/first-boot-wizard.sh +++ b/rpi/first-boot-wizard.sh @@ -14,6 +14,10 @@ INSTALL_DIR="/opt/stegasoo" FLAG_FILE="/etc/stegasoo-first-boot" PROFILE_HOOK="/etc/profile.d/stegasoo-wizard.sh" +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +# Source banner functions +source "$SCRIPT_DIR/banner.sh" # Check if this is first boot if [ ! -f "$FLAG_FILE" ]; then @@ -39,18 +43,7 @@ clear # Welcome # ============================================================================= -echo "" -echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" -echo -e "\033[0;90m · . · . * · . * · . * · . * · . * · . ·\033[0m" -echo -e "\033[38;5;220m ___ _____ ___ ___ _ ___ ___ ___\033[0m" -echo -e "\033[38;5;220m / __||_ _|| __| / __| /_\\ / __| / _ \\ / _ \\\\\033[0m" -echo -e "\033[38;5;220m \\__ \\ | | | _| | (_ | / _ \\ \\__ \\ | (_) || (_) |\033[0m" -echo -e "\033[38;5;220m |___/ |_| |___| \\___//_/ \\_\\|___/ \\___/ \\___/\033[0m" -echo -e "\033[0;90m · . · . * · . * · . * · . * · . * · . ·\033[0m" -echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" -echo -e "\033[1;37m First Boot Wizard\033[0m" -echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" - +print_banner "First Boot Wizard" echo "" gum style --foreground 245 "This wizard will help you configure your Stegasoo server" echo "" @@ -409,18 +402,7 @@ else fi echo "" -echo "" -echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" -echo -e "\033[0;90m · . · . * · . * · . * · . * · . * · . ·\033[0m" -echo -e "\033[38;5;220m ___ _____ ___ ___ _ ___ ___ ___\033[0m" -echo -e "\033[38;5;220m / __||_ _|| __| / __| /_\\ / __| / _ \\ / _ \\\\\033[0m" -echo -e "\033[38;5;220m \\__ \\ | | | _| | (_ | / _ \\ \\__ \\ | (_) || (_) |\033[0m" -echo -e "\033[38;5;220m |___/ |_| |___| \\___//_/ \\_\\|___/ \\___/ \\___/\033[0m" -echo -e "\033[0;90m · . · . * · . * · . * · . * · . * · . ·\033[0m" -echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" -echo -e "\033[1;32m Setup Complete!\033[0m" -echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" - +print_complete_banner "Setup Complete!" echo "" gum style --foreground 82 --bold "Create your admin account:" gum style --foreground 226 " $ACCESS_URL_LOCAL" diff --git a/rpi/sanitize-for-image.sh b/rpi/sanitize-for-image.sh index 7409e9b..c89993e 100755 --- a/rpi/sanitize-for-image.sh +++ b/rpi/sanitize-for-image.sh @@ -29,6 +29,10 @@ GRAY='\033[0;90m' BOLD='\033[1m' NC='\033[0m' +# Source banner functions +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +source "$SCRIPT_DIR/banner.sh" + # Show help show_help() { echo "Stegasoo Sanitize Script - Prepare Pi for SD Card Imaging" @@ -70,21 +74,11 @@ if [ "$EUID" -ne 0 ]; then fi clear -echo "" -echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" -echo -e "${GRAY} · . · . * · . * · . * · . * · . * · . ·${NC}" -echo -e "\033[38;5;220m ___ _____ ___ ___ _ ___ ___ ___\033[0m" -echo -e "\033[38;5;220m / __||_ _|| __| / __| /_\\\\ / __| / _ \\\\ / _ \\\\\033[0m" -echo -e "\033[38;5;220m \\\\__ \\\\ | | | _| | (_ | / _ \\\\ \\\\__ \\\\ | (_) || (_) |\033[0m" -echo -e "\033[38;5;220m |___/ |_| |___| \\___|/_/ \\_\\\\|___/ \\\\___/ \\\\___/\033[0m" -echo -e "${GRAY} · . · . * · . * · . * · . * · . * · . ·${NC}" -echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" if [ "$SOFT_RESET" = true ]; then - echo -e "\033[1;37m Soft Reset (Factory)\033[0m" + print_banner "Soft Reset (Factory)" else - echo -e "\033[1;37m Sanitize for Imaging\033[0m" + print_banner "Sanitize for Imaging" fi -echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" echo "" if [ "$SOFT_RESET" = true ]; then diff --git a/rpi/setup.sh b/rpi/setup.sh index 503ec60..2de5c6e 100755 --- a/rpi/setup.sh +++ b/rpi/setup.sh @@ -29,6 +29,33 @@ GRAY='\033[0;90m' BOLD='\033[1m' NC='\033[0m' # No Color +# Source banner.sh if available (for local runs), otherwise define inline +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)" +if [ -f "$SCRIPT_DIR/banner.sh" ]; then + source "$SCRIPT_DIR/banner.sh" +else + # Inline banner functions for curl-pipe execution + print_gradient_line() { + echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" + } + print_banner() { + local subtitle="$1" + echo "" + print_gradient_line + echo -e "\033[0;90m · . · . * · . * · . * · . * · . * · . ·\033[0m" + echo -e "\033[38;5;220m ___ _____ ___ ___ _ ___ ___ ___\033[0m" + echo -e "\033[38;5;220m / __||_ _|| __| / __| /_\\ / __| / _ \\ / _ \\\\\033[0m" + echo -e "\033[38;5;220m \\__ \\ | | | _| | (_ | / _ \\ \\__ \\ | (_) || (_) |\033[0m" + echo -e "\033[38;5;220m |___/ |_| |___| \\___//_/ \\_\\|___/ \\___/ \\___/\033[0m" + echo -e "\033[0;90m · . · . * · . * · . * · . * · . * · . ·\033[0m" + print_gradient_line + if [ -n "$subtitle" ]; then + echo -e "\033[1;37m ${subtitle}\033[0m" + print_gradient_line + fi + } +fi + # Show help show_help() { echo "Stegasoo Raspberry Pi Setup Script" @@ -82,17 +109,7 @@ for config_file in "/etc/stegasoo.conf" "$HOME/.config/stegasoo/stegasoo.conf"; done clear -echo "" -echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" -echo -e "${GRAY} · . · . * · . * · . * · . * · . * · . ·${NC}" -echo -e "\033[38;5;220m ___ _____ ___ ___ _ ___ ___ ___\033[0m" -echo -e "\033[38;5;220m / __||_ _|| __| / __| /_\\\\ / __| / _ \\\\ / _ \\\\\033[0m" -echo -e "\033[38;5;220m \\\\__ \\\\ | | | _| | (_ | / _ \\\\ \\\\__ \\\\ | (_) || (_) |\033[0m" -echo -e "\033[38;5;220m |___/ |_| |___| \\___|/_/ \\_\\\\|___/ \\\\___/ \\\\___/\033[0m" -echo -e "${GRAY} · . · . * · . * · . * · . * · . * · . ·${NC}" -echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" -echo -e "\033[1;37m Raspberry Pi Setup\033[0m" -echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" +print_banner "Raspberry Pi Setup" echo "" echo " This will install Stegasoo with full DCT support" echo " Estimated time: ~2 minutes (pre-built) or 15-20 min (from source)" @@ -424,19 +441,22 @@ if systemctl is-active --quiet stegasoo 2>/dev/null; then echo -e "\033[38;5;220m |___/ |_| |___| \\___//_/ \\_\\|___/ \\___/ \\___/\033[0m" echo -e "\033[0;90m · . · . * · . * · . * · . * · . * · . ·\033[0m" echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" - echo -e " \033[0;32m●\033[0m Stegasoo is running" - echo -e " \033[0;33m$STEGASOO_URL\033[0m" # Show CPU stats if overclocked (read configured freq, not current idle freq) CONFIG_FILE="" if [ -f /boot/firmware/config.txt ]; then CONFIG_FILE="/boot/firmware/config.txt" elif [ -f /boot/config.txt ]; then CONFIG_FILE="/boot/config.txt"; fi + CPU_MHZ="" + CPU_TEMP="" if [ -n "$CONFIG_FILE" ] && grep -qE "^arm_freq=" "$CONFIG_FILE" 2>/dev/null; then CPU_MHZ=$(grep "^arm_freq=" "$CONFIG_FILE" | cut -d= -f2) CPU_TEMP=$(vcgencmd measure_temp 2>/dev/null | cut -d= -f2) - if [ -n "$CPU_MHZ" ] && [ -n "$CPU_TEMP" ]; then - echo -e " \033[0;35m⚡\033[0m ${CPU_MHZ} MHz \033[0;35m🌡\033[0m ${CPU_TEMP}" - fi fi + # Compact two-column layout + echo -e " \033[0;32m●\033[0m Stegasoo running \033[0;32m●\033[0m \033[0;33m$STEGASOO_URL\033[0m" + if [ -n "$CPU_MHZ" ] && [ -n "$CPU_TEMP" ]; then + echo -e " \033[0;35m⚡\033[0m ${CPU_MHZ} MHz \033[0;35m🌡\033[0m ${CPU_TEMP}" + fi + echo -e "\033[38;5;93m══════════════\033[38;5;99m══════════════\033[38;5;105m══════════════\033[38;5;117m══════════════\033[0m" echo "" else echo ""