- 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
54 lines
1.3 KiB
Bash
Executable File
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
|