#!/usr/bin/env bash # ============================================================================= # scripts/verify-genomes.sh # Check (default) or --sync the directory structure of every registered genome # against the canonical layout in lib/structure.sh. # # bash scripts/verify-genomes.sh # report drift, non-zero exit on drift # bash scripts/verify-genomes.sh --sync # create missing dirs everywhere (safe) # # No hardware/LLM involved — pure structure check. Run anywhere. # ============================================================================= set -euo pipefail source "lib/output.sh" source "globals.env" source "registry.sh" source "lib/structure.sh" MODE="verify" [[ "${1:-}" == "--sync" ]] && MODE="sync" step "Genome structure: ${MODE}" TOTAL_MISSING=0 for entry in "${GENOMES[@]}"; do IFS='|' read -r GENOME_NAME _ <<< "$entry" # 4-field registry; only GENOME_NAME used here genome_dir="${WORK_DIR}/${MASTER_REPO}/${GENOME_NAME}" if [[ ! -d "$genome_dir" ]]; then warn "not found locally, skipping: ${GENOME_NAME}" continue fi info "Genome: ${GENOME_NAME}" if [[ "$MODE" == "sync" ]]; then structure_sync "$genome_dir" else structure_report "$genome_dir" && m=0 || m=$? TOTAL_MISSING=$((TOTAL_MISSING + m)) fi done echo "" if [[ "$MODE" == "sync" ]]; then success "Structure sync complete." elif [[ $TOTAL_MISSING -eq 0 ]]; then success "Structure verified: all genomes match the canonical layout." else error "Structure drift: ${TOTAL_MISSING} missing directory(ies). Fix with: make sync-structure" exit 1 fi