#!/bin/bash # Verify scripts directory structure SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/lib/init.sh" log_heading "Verifying Scripts Structure" errors=0 # Check directories exist for dir in migration metrics metrics/collect dbis infrastructure utils lib lib/common lib/config; do if [ -d "$SCRIPT_DIR/$dir" ]; then log_success "Directory exists: $dir" else log_error "Directory missing: $dir" ((errors++)) fi done # Check library files for lib in lib/common/colors.sh lib/common/logging.sh lib/common/utils.sh lib/common/validation.sh lib/common/error-handling.sh lib/config/env.sh lib/init.sh; do if [ -f "$SCRIPT_DIR/$lib" ]; then log_success "Library exists: $lib" else log_error "Library missing: $lib" ((errors++)) fi done # Count scripts migration_count=$(find "$SCRIPT_DIR/migration" -name "*.sh" 2>/dev/null | wc -l) metrics_count=$(find "$SCRIPT_DIR/metrics" -name "*.sh" 2>/dev/null | wc -l) dbis_count=$(find "$SCRIPT_DIR/dbis" -name "*.sh" 2>/dev/null | wc -l) infra_count=$(find "$SCRIPT_DIR/infrastructure" -name "*.sh" 2>/dev/null | wc -l) utils_count=$(find "$SCRIPT_DIR/utils" -name "*.sh" 2>/dev/null | wc -l) total=$((migration_count + metrics_count + dbis_count + infra_count + utils_count)) log_info "Script counts:" log_info " Migration: $migration_count" log_info " Metrics: $metrics_count" log_info " DBIS: $dbis_count" log_info " Infrastructure: $infra_count" log_info " Utils: $utils_count" log_info " Total: $total" if [ $total -eq 30 ]; then log_success "All 30 scripts found" else log_error "Expected 30 scripts, found $total" ((errors++)) fi # Check scripts are executable (exclude verification script itself) executable_count=$(find "$SCRIPT_DIR" -name "*.sh" -type f ! -path "*/lib/*" ! -name "verify-structure.sh" -executable 2>/dev/null | wc -l) if [ $executable_count -eq $total ]; then log_success "All scripts are executable" else log_error "Expected $total executable scripts, found $executable_count" ((errors++)) fi # Check scripts use libraries (exclude verification script itself) scripts_with_libs=$(grep -r "source.*lib/init.sh" "$SCRIPT_DIR" --include="*.sh" ! -path "*/lib/*" ! -name "verify-structure.sh" 2>/dev/null | wc -l) if [ $scripts_with_libs -eq $total ]; then log_success "All scripts use libraries" else log_warn "Some scripts may not use libraries: $scripts_with_libs/$total" fi if [ $errors -eq 0 ]; then log_success "Verification complete - All checks passed!" exit 0 else log_error "Verification failed - $errors errors found" exit 1 fi