#!/usr/bin/bash set -euo pipefail IFS=$'\n\t' SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" if [[ -d "${SCRIPT_DIR}/../../.git" ]] || [[ -f "${SCRIPT_DIR}/../../nodo/config/etc/mirrors.env" ]]; then REPO_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)" else REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)" fi if [[ -f "${REPO_ROOT}/nodo/config/etc/mirrors.env" ]]; then # shellcheck source=/dev/null source "${REPO_ROOT}/nodo/config/etc/mirrors.env" elif [[ -f "${REPO_ROOT}/config/etc/mirrors.env" ]]; then # shellcheck source=/dev/null source "${REPO_ROOT}/config/etc/mirrors.env" elif [[ -f "${REPO_ROOT}/etc/mirrors.env" ]]; then # shellcheck source=/dev/null source "${REPO_ROOT}/etc/mirrors.env" fi STAGING_DIR="${MIRRORS_STAGING_DIR:-$HOME/ipfs/staging}" SIGS_BASE="${STAGING_DIR}/centos-stream/SIGs/10-stream" UPSTREAM_BASE="https://mirror.stream.centos.org/SIGs/10-stream" log() { local timestamp timestamp="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" echo "[${timestamp}] $*" } sync_repo() { local sig_path="$1" local dest="${SIGS_BASE}/${sig_path}" local url="${UPSTREAM_BASE}/${sig_path}/" local repo_id repo_id="c10s-$(echo "${sig_path}" | tr '/' '-')" mkdir -p "${dest}" log "INFO: Sincronizando ${sig_path} desde ${url}..." dnf5 --setopt=max_parallel_downloads="${MAX_PARALLEL_DOWNLOADS:-10}" \ --repofrompath="${repo_id},${url}" \ --repo="${repo_id}" reposync \ --download-metadata \ --norepopath \ --destdir="${dest}" \ --delete } main() { log "==========================================================" log " Inicio de sincronización de repositorios SIG CentOS Stream 10" log "==========================================================" # 1. SIG extras sync_repo "extras/x86_64/extras-common" # 2. SIG virt sync_repo "virt/x86_64/kvm-common" sync_repo "virt/x86_64/ovirt-45" # 3. SIG kmods sync_repo "kmods/x86_64/packages-main" sync_repo "kmods/x86_64/packages-rebuild" # 4. SIG messaging sync_repo "messaging/x86_64/rabbitmq-4" # 5. SIG storage - Ceph sync_repo "storage/x86_64/ceph-squid" sync_repo "storage/x86_64/ceph-tentacle" sync_repo "storage/x86_64/ceph-umbrella" # 6. SIG storage - Samba for v in 421 422 423 424 425; do sync_repo "storage/x86_64/samba-${v}" done # 7. SIG storage - NFS Ganesha for v in 6 7 8 9 10 11 12 13 14 15; do sync_repo "storage/x86_64/nfsganesha-${v}" done # 8. SIG hyperscale for comp in packages-main packages-facebook packages-kernel packages-spin packages-asahi packages-experimental; do sync_repo "hyperscale/x86_64/${comp}" done log "==========================================================" log " Sincronización de repositorios SIG completada." log "==========================================================" } main "$@"