Files
bzzz/scripts/setup-transition.sh
anthonyrawlins c177363a19 Save current BZZZ config-ui state before CHORUS branding update
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-19 00:19:00 +10:00

220 lines
5.7 KiB
Bash
Executable File

#!/bin/bash
# BZZZ Setup Transition Script
# This script helps users transition to the new web-based configuration system
set -e
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Configuration
BZZZ_CONFIG_DIR="$HOME/.bzzz"
BZZZ_CONFIG_FILE="$BZZZ_CONFIG_DIR/config.yaml"
BACKUP_DIR="$BZZZ_CONFIG_DIR/backups"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
echo -e "${BLUE}🐝 BZZZ Setup Transition Script${NC}"
echo -e "${BLUE}================================${NC}"
echo ""
# Check if BZZZ is installed
check_bzzz_installation() {
echo -e "📦 Checking BZZZ installation..."
if ! command -v bzzz &> /dev/null; then
if [ -f "./bzzz" ]; then
echo -e "${GREEN}✅ Found BZZZ binary in current directory${NC}"
BZZZ_BINARY="./bzzz"
elif [ -f "./build/bzzz" ]; then
echo -e "${GREEN}✅ Found BZZZ binary in build directory${NC}"
BZZZ_BINARY="./build/bzzz"
else
echo -e "${RED}❌ BZZZ binary not found${NC}"
echo -e "Please build BZZZ first: ${YELLOW}make build${NC}"
exit 1
fi
else
echo -e "${GREEN}✅ BZZZ is installed system-wide${NC}"
BZZZ_BINARY="bzzz"
fi
}
# Backup existing configuration
backup_existing_config() {
if [ -f "$BZZZ_CONFIG_FILE" ]; then
echo -e "💾 Backing up existing configuration..."
mkdir -p "$BACKUP_DIR"
cp "$BZZZ_CONFIG_FILE" "$BACKUP_DIR/config_backup_$TIMESTAMP.yaml"
echo -e "${GREEN}✅ Configuration backed up to: $BACKUP_DIR/config_backup_$TIMESTAMP.yaml${NC}"
else
echo -e "${YELLOW}⚪ No existing configuration found${NC}"
fi
}
# Check configuration status
check_config_status() {
echo -e "🔍 Checking configuration status..."
if [ -f "$BZZZ_CONFIG_FILE" ]; then
echo -e "${GREEN}✅ Configuration file exists: $BZZZ_CONFIG_FILE${NC}"
# Try to validate the configuration
if $BZZZ_BINARY --config-check 2>/dev/null; then
echo -e "${GREEN}✅ Configuration is valid${NC}"
echo -e "${BLUE}🚀 BZZZ should start normally without setup${NC}"
return 0
else
echo -e "${YELLOW}⚠️ Configuration exists but appears invalid${NC}"
echo -e "${BLUE}🔧 BZZZ will start in setup mode${NC}"
return 1
fi
else
echo -e "${YELLOW}⚪ No configuration file found${NC}"
echo -e "${BLUE}🔧 BZZZ will start in setup mode${NC}"
return 1
fi
}
# Start setup mode
start_setup_mode() {
echo -e "🌐 Starting BZZZ in setup mode..."
echo -e "📍 Setup interface will be available at: ${GREEN}http://localhost:8080${NC}"
echo -e "📋 Follow the setup wizard to configure your BZZZ cluster"
echo ""
echo -e "${YELLOW}Press Ctrl+C to stop the setup server${NC}"
echo ""
# Start BZZZ (it will automatically detect setup is needed)
$BZZZ_BINARY
}
# Generate sample configuration
generate_sample_config() {
echo -e "📄 Generating sample configuration..."
mkdir -p "$BZZZ_CONFIG_DIR"
cat > "$BZZZ_CONFIG_FILE" << 'EOF'
# BZZZ Configuration File
# This is a sample configuration - customize for your environment
agent:
id: "bzzz-agent-sample"
capabilities:
- "code_generation"
- "task_coordination"
- "p2p_communication"
models:
- "llama2:7b"
- "codellama:7b"
specialization: "general_developer"
max_tasks: 5
github:
token_file: "~/.config/bzzz/github_token"
assignee: "your-username"
rate_limit: true
p2p:
service_tag: "bzzz-peer-discovery"
bzzz_topic: "bzzz/coordination/v1"
hmmm_topic: "hmmm/meta-discussion/v1"
discovery_timeout: "10s"
logging:
level: "info"
format: "text"
output: "stdout"
structured: false
v2:
enabled: true
dht:
enabled: true
bootstrap_peers: []
security:
election_config:
heartbeat_timeout: "30s"
election_timeout: "60s"
minimum_peers: 1
audit_logging: true
EOF
echo -e "${GREEN}✅ Sample configuration created: $BZZZ_CONFIG_FILE${NC}"
echo -e "${YELLOW}⚠️ Please customize this configuration for your environment${NC}"
}
# Main menu
show_menu() {
echo -e "What would you like to do?"
echo -e "1) ${GREEN}Check configuration status${NC}"
echo -e "2) ${BLUE}Start setup mode (web interface)${NC}"
echo -e "3) ${YELLOW}Generate sample configuration${NC}"
echo -e "4) ${GREEN}Backup existing configuration${NC}"
echo -e "5) ${RED}Exit${NC}"
echo ""
read -p "Enter your choice (1-5): " choice
}
# Process menu choice
process_choice() {
case $choice in
1)
check_config_status
;;
2)
start_setup_mode
;;
3)
generate_sample_config
;;
4)
backup_existing_config
;;
5)
echo -e "${GREEN}👋 Goodbye!${NC}"
exit 0
;;
*)
echo -e "${RED}❌ Invalid choice. Please enter 1-5.${NC}"
;;
esac
}
# Main execution
main() {
check_bzzz_installation
echo ""
check_config_status
config_valid=$?
echo ""
if [ $config_valid -eq 0 ]; then
echo -e "${GREEN}🎉 Your BZZZ configuration is ready!${NC}"
echo -e "Run ${YELLOW}$BZZZ_BINARY${NC} to start BZZZ normally"
else
echo -e "${BLUE}🔧 Setup is required${NC}"
while true; do
echo ""
show_menu
process_choice
if [ $choice -eq 5 ]; then
break
fi
echo ""
read -p "Press Enter to continue..."
done
fi
}
# Run main function
main