Add progress bar to setup script

Shows step counter with visual progress bar during installation:
[3/15] ██████░░░░░░░░░░░░░░ 20% - Installing ffmpeg

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Smittix
2026-01-08 11:55:17 +00:00
parent 563c6b79fa
commit 55b0c0509d

View File

@@ -27,6 +27,23 @@ ok() { echo -e "${GREEN}[✓]${NC} $*"; }
warn() { echo -e "${YELLOW}[!]${NC} $*"; }
fail() { echo -e "${RED}[x]${NC} $*"; }
# ----------------------------
# Progress tracking
# ----------------------------
CURRENT_STEP=0
TOTAL_STEPS=0
progress() {
local msg="$1"
((CURRENT_STEP++)) || true
local pct=$((CURRENT_STEP * 100 / TOTAL_STEPS))
local filled=$((pct / 5))
local empty=$((20 - filled))
local bar=$(printf '█%.0s' $(seq 1 $filled 2>/dev/null) || true)
bar+=$(printf '░%.0s' $(seq 1 $empty 2>/dev/null) || true)
echo -e "${BLUE}[${CURRENT_STEP}/${TOTAL_STEPS}]${NC} ${bar} ${pct}% - ${msg}"
}
on_error() {
local line="$1"
local cmd="${2:-unknown}"
@@ -174,7 +191,7 @@ PY
}
install_python_deps() {
info "Setting up Python virtual environment..."
progress "Setting up Python environment"
check_python_version
if [[ ! -f requirements.txt ]]; then
@@ -195,7 +212,7 @@ install_python_deps() {
python -m pip install --upgrade pip setuptools wheel >/dev/null
ok "Upgraded pip tooling"
info "Installing Python requirements..."
progress "Installing Python dependencies"
python -m pip install -r requirements.txt
ok "Python dependencies installed"
echo
@@ -230,21 +247,37 @@ brew_install() {
}
install_macos_packages() {
ensure_brew
info "Installing packages via Homebrew..."
TOTAL_STEPS=12
CURRENT_STEP=0
progress "Checking Homebrew"
ensure_brew
progress "Installing RTL-SDR libraries"
brew_install librtlsdr
progress "Installing multimon-ng"
brew_install multimon-ng
progress "Installing ffmpeg"
brew_install ffmpeg
progress "Installing rtl_433"
brew_install rtl_433
# ADS-B (may not exist)
warn "Attempting dump1090 install via Homebrew (may be unavailable)..."
(brew_install dump1090-mutability) || true
progress "Installing dump1090"
(brew_install dump1090-mutability) || warn "dump1090 not available via Homebrew"
progress "Installing aircrack-ng"
brew_install aircrack-ng
progress "Installing hcxtools"
brew_install hcxtools
progress "Installing SoapySDR"
brew_install soapysdr
progress "Installing gpsd"
brew_install gpsd
warn "macOS note: hcitool/hciconfig are Linux (BlueZ) utilities and often unavailable on macOS."
@@ -330,29 +363,49 @@ install_debian_packages() {
export DEBIAN_FRONTEND=noninteractive
export NEEDRESTART_MODE=a
info "Updating APT package lists..."
TOTAL_STEPS=15
CURRENT_STEP=0
progress "Updating APT package lists"
$SUDO apt-get update -y >/dev/null
info "Installing required packages via APT..."
progress "Installing RTL-SDR"
apt_install rtl-sdr
progress "Installing multimon-ng"
apt_install multimon-ng
progress "Installing ffmpeg"
apt_install ffmpeg
apt_try_install_any rtl-433 rtl433 || true
progress "Installing rtl_433"
apt_try_install_any rtl-433 rtl433 || warn "rtl-433 not available"
progress "Installing aircrack-ng"
apt_install aircrack-ng || true
progress "Installing hcxdumptool"
apt_install hcxdumptool || true
progress "Installing hcxtools"
apt_install hcxtools || true
progress "Installing Bluetooth tools"
apt_install bluez bluetooth || true
progress "Installing SoapySDR"
apt_install soapysdr-tools || true
progress "Installing gpsd"
apt_install gpsd gpsd-clients || true
# dump1090: apt first; source fallback; hard fail inside if it can't build
progress "Installing dump1090"
if ! cmd_exists dump1090; then
apt_try_install_any dump1090-fa dump1090-mutability dump1090 || true
fi
cmd_exists dump1090 || install_dump1090_from_source_debian
progress "Configuring udev rules"
setup_udev_rules_debian
}