Files
install-scripts/tools/update-from-upstream.sh

82 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# Mundo Telecom - Atualizar repositório a partir do upstream
#
# Uso: ./update-from-upstream.sh [repo-dir]
#
# Processo:
# 1. Busca mudanças do GitHub (upstream)
# 2. Cria branch de revisão
# 3. Aplica as mudanças
# 4. Gera relatório do que mudou
# 5. (opcional) Faz merge na master
REPO_DIR="${1:-.}"
cd "$REPO_DIR"
REPO_NAME=$(basename $(git rev-parse --show-toplevel))
BRANCH="update-$(date +%Y%m%d)"
echo "============================================"
echo " 🔄 Atualizando $REPO_NAME"
echo "============================================"
# Buscar upstream
echo ""
echo "📡 Buscando atualizações do GitHub..."
git fetch upstream
# Verificar se há mudanças
BEHIND=$(git rev-list --count HEAD..upstream/master 2>/dev/null || echo 0)
if [ "$BEHIND" -eq 0 ]; then
echo "✅ Já está atualizado!"
exit 0
fi
# Criar branch de revisão
echo ""
echo "🌿 Criando branch de revisão: $BRANCH"
git checkout -b "$BRANCH" origin/master 2>/dev/null || git checkout "$BRANCH" 2>/dev/null || git checkout -b "$BRANCH"
# Merge do upstream
echo ""
echo "🔀 Aplicando mudanças do upstream..."
if git merge upstream/master --no-edit 2>&1; then
echo "✅ Merge realizado sem conflitos!"
else
echo "⚠️ HOUVE CONFLITOS! Resolva manualmente:"
echo " 1. git status (ver arquivos conflitantes)"
echo " 2. Resolver os conflitos"
echo " 3. git add . && git commit"
echo " 4. git push origin $BRANCH"
exit 1
fi
# Relatório de mudanças
echo ""
echo "📋 Resumo das mudanças:"
git diff origin/master..$BRANCH --stat
echo ""
echo "📋 Commits aplicados:"
git log origin/master..$BRANCH --oneline --no-decorate
# Push
echo ""
echo "⬆️ Enviando para o Gitea..."
git push origin "$BRANCH"
# Voltar pra master
git checkout master
echo ""
echo "============================================"
echo " ✅ Branch '$BRANCH' criada no Gitea!"
echo ""
echo " PRÓXIMOS PASSOS:"
echo " 1. Revisar as mudanças no Gitea"
echo " https://git.homelabds.com.br/diegods/$REPO_NAME"
echo " 2. Testar em ambiente de desenvolvimento"
echo " 3. Fazer merge na master quando aprovado"
echo " git checkout master && git merge $BRANCH && git push origin master"
echo "============================================"