forked from finn/tinyboard
54 lines
1.6 KiB
Bash
Executable File
54 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
CYAN='\033[0;36m'
|
|
NC='\033[0m'
|
|
|
|
info() { echo -e "${GREEN}[+]${NC} $*"; }
|
|
die() { echo -e "${RED}[ERROR]${NC} $*" >&2; exit 1; }
|
|
header() { echo -e "\n${CYAN}══════════════════════════════════════════${NC}"; echo -e "${CYAN} $*${NC}"; echo -e "${CYAN}══════════════════════════════════════════${NC}"; }
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
header "TinyBoard Setup"
|
|
echo ""
|
|
echo " 0) Reconfigure network"
|
|
echo " 1) Set up this device as a new spoke"
|
|
echo " 2) Onboard a new spoke from the hub"
|
|
echo " 3) Offboard a spoke from the hub"
|
|
echo " 4) Set up this device as a new hub"
|
|
echo ""
|
|
read -rp "Choose [0/1/2/3/4]: " CHOICE
|
|
|
|
case "$CHOICE" in
|
|
0)
|
|
[ "$(id -u)" -eq 0 ] || die "Network reconfiguration must be run as root"
|
|
info "Starting network reconfiguration..."
|
|
exec "$SCRIPT_DIR/spoke/setup-network.sh"
|
|
;;
|
|
1)
|
|
[ "$(id -u)" -eq 0 ] || die "Spoke setup must be run as root"
|
|
info "Starting spoke setup..."
|
|
exec "$SCRIPT_DIR/spoke/setup-spoke.sh"
|
|
;;
|
|
2)
|
|
info "Starting hub onboarding..."
|
|
exec "$SCRIPT_DIR/hub/onboard-spoke.sh"
|
|
;;
|
|
3)
|
|
info "Starting hub offboarding..."
|
|
exec "$SCRIPT_DIR/hub/offboard-spoke.sh"
|
|
;;
|
|
4)
|
|
[ "$(id -u)" -eq 0 ] || die "Hub setup must be run as root"
|
|
info "Starting hub setup..."
|
|
exec "$SCRIPT_DIR/hub/setup-hub.sh"
|
|
;;
|
|
*)
|
|
die "Invalid choice"
|
|
;;
|
|
esac
|