Skip to content

Instantly share code, notes, and snippets.

@jarodsim
Created May 24, 2024 16:27
Show Gist options
  • Save jarodsim/5a68bd4f26a1dd3e6100d110090c881e to your computer and use it in GitHub Desktop.
Save jarodsim/5a68bd4f26a1dd3e6100d110090c881e to your computer and use it in GitHub Desktop.
Automatiza o processo de atualização de múltiplos repositórios Git localizados em subdiretórios a partir do diretório onde o script é executado. O script aceita o nome de uma branch como argumento, faz checkout dessa branch em cada repositório encontrado e, em seguida, executa um git pull para atualizar os repositórios com as últimas mudanças do…
import os
import sys
import subprocess
def main():
if len(sys.argv) != 2:
print("Uso: python script.py <BRANCH_NAME>")
sys.exit(1)
branch_name = sys.argv[1]
current_directory = os.getcwd()
# Listar todas as pastas no diretório atual
directories = [d for d in os.listdir(current_directory) if os.path.isdir(os.path.join(current_directory, d))]
for directory in directories:
repo_path = os.path.join(current_directory, directory)
try:
# Navegar até o diretório do repositório
os.chdir(repo_path)
print(f"Acessando diretório: {repo_path}")
# Executar git checkout <VALOR_AQUI>
subprocess.run(["git", "checkout", branch_name], check=True)
print(f"Executado 'git checkout {branch_name}' em {repo_path}")
# Executar git pull
subprocess.run(["git", "pull"], check=True)
print(f"Executado 'git pull' em {repo_path}")
except subprocess.CalledProcessError as e:
print(f"Erro ao executar comandos git no diretório {repo_path}: {e}")
except Exception as e:
print(f"Erro geral no diretório {repo_path}: {e}")
finally:
# Retornar ao diretório inicial
os.chdir(current_directory)
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment