Created
May 24, 2024 16:27
-
-
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…
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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