#!/bin/bash set -e # Source the utilities file source "$(dirname "$0")/utils.sh" # Get the directory where this script is located (which is the scripts directory) SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" # Check if all required scripts exist and are executable in the current directory required_scripts=( "01_system_preparation.sh" "02_install_docker.sh" "03_generate_secrets.sh" "04_run_services.sh" "05_final_report.sh" ) missing_scripts=() non_executable_scripts=() for script in "${required_scripts[@]}"; do # Check directly in the current directory (SCRIPT_DIR) script_path="$SCRIPT_DIR/$script" if [ ! -f "$script_path" ]; then missing_scripts+=("$script") elif [ ! -x "$script_path" ]; then non_executable_scripts+=("$script") fi done if [ ${#missing_scripts[@]} -gt 0 ]; then # Update error message to reflect current directory check log_error "The following required scripts are missing in $SCRIPT_DIR:" printf " - %s\n" "${missing_scripts[@]}" exit 1 fi # Attempt to make scripts executable if they are not if [ ${#non_executable_scripts[@]} -gt 0 ]; then log_warning "The following scripts were not executable and will be made executable:" printf " - %s\n" "${non_executable_scripts[@]}" # Make all .sh files in the current directory executable chmod +x "$SCRIPT_DIR"/*.sh # Re-check after chmod for script in "${non_executable_scripts[@]}"; do script_path="$SCRIPT_DIR/$script" if [ ! -x "$script_path" ]; then # Update error message log_error "Failed to make '$script' in $SCRIPT_DIR executable. Please check permissions." exit 1 fi done log_success "Scripts successfully made executable." fi # Run installation steps sequentially using their full paths log_info "Step 1: System Preparation..." bash "$SCRIPT_DIR/01_system_preparation.sh" || { log_error "System Preparation failed"; exit 1; } log_success "System preparation complete!" log_info "Step 2: Installing Docker..." bash "$SCRIPT_DIR/02_install_docker.sh" || { log_error "Docker Installation failed"; exit 1; } log_success "Docker installation complete!" log_info "Step 3: Generating Secrets and Configuration..." bash "$SCRIPT_DIR/03_generate_secrets.sh" || { log_error "Secret/Config Generation failed"; exit 1; } log_success "Secret/Config Generation complete!" log_info "Step 4: Running Services..." bash "$SCRIPT_DIR/04_run_services.sh" || { log_error "Running Services failed"; exit 1; } log_success "Running Services complete!" log_info "Step 5: Generating Final Report..." bash "$SCRIPT_DIR/05_final_report.sh" || { log_error "Final Report Generation failed"; exit 1; } log_success "Final Report Generation complete!" exit 0