workspace-v1/devtools/scripts/git/sync-submodules.sh
rckrdmrd d6c684611f feat(EPIC-010): Add git management scripts and documentation
- clone-workspace.sh: Clone workspace with submodules
- sync-submodules.sh: Sync submodules to latest
- REPOSITORY-STRUCTURE.md: Complete repo documentation

Sprint 4 of EPIC-010 completed
2026-01-04 03:40:52 -06:00

54 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# =============================================================================
# sync-submodules.sh
# =============================================================================
# Sincroniza todos los submodules a sus ultimas versiones
# Generado: 2026-01-04
# EPIC: EPIC-010
# =============================================================================
set -e
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
AUTO_COMMIT=false
[ "$1" == "--commit" ] && AUTO_COMMIT=true
if [ ! -d ".git" ]; then
echo "ERROR: No es un repositorio Git"
exit 1
fi
echo "=============================================="
echo " SYNC SUBMODULES"
echo "=============================================="
echo "=== Estado actual ==="
git submodule status
echo ""
echo "=== Sincronizando ==="
git submodule sync --recursive
git submodule update --remote --merge
echo ""
echo "=== Nuevo estado ==="
git submodule status
CHANGES=$(git status --porcelain)
if [ -n "$CHANGES" ]; then
echo ""
echo -e "${YELLOW}Cambios detectados${NC}"
if [ "$AUTO_COMMIT" = true ]; then
git add .
git commit -m "chore: update submodules"
echo -e "${GREEN}Commit creado${NC}"
else
echo "Para commit: $0 --commit"
fi
else
echo -e "${GREEN}Submodules actualizados${NC}"
fi