Spaces:
Paused
Paused
| # setup.py | |
| # | |
| # Copyright (C) August 4, 2025 Carlos Rodrigues dos Santos | |
| # | |
| # Versão 2.0.0 (Clonagem Anônima e Robusta) | |
| # - Usa URLs HTTPS explícitas e anônimas para evitar que o Git tente | |
| # usar credenciais em cache desnecessariamente para repositórios públicos. | |
| import os | |
| import subprocess | |
| import sys | |
| from pathlib import Path | |
| # --- Configuração --- | |
| DEPS_DIR = Path("./deps") | |
| # URLs explícitas e anônimas para os repositórios públicos | |
| REPOS_TO_CLONE = { | |
| "LTX-Video": "https://huggingface.co/spaces/Lightricks/ltx-video-distilled", | |
| "SeedVR_Space": "https://huggingface.co/spaces/ByteDance-Seed/SeedVR2-3B", | |
| "MMAudio": "https://github.com/hkchengrex/MMAudio.git" | |
| } | |
| def run_command(command, cwd=None): | |
| """Executa um comando no terminal e lida com erros.""" | |
| print(f"Executando: {' '.join(command)}") | |
| try: | |
| # Redireciona o stdin para DEVNULL para garantir que o git não tente pedir senha | |
| subprocess.run( | |
| command, | |
| check=True, | |
| cwd=cwd, | |
| stdin=subprocess.DEVNULL, | |
| ) | |
| except subprocess.CalledProcessError as e: | |
| print(f"ERRO: O comando falhou com o código de saída {e.returncode}") | |
| # stderr é capturado automaticamente se check=True falhar | |
| print(f"Stderr: {e.stderr}") | |
| sys.exit(1) | |
| except FileNotFoundError: | |
| print(f"ERRO: O comando '{command[0]}' não foi encontrado. Certifique-se de que o git está instalado e no seu PATH.") | |
| sys.exit(1) | |
| def main(): | |
| print("--- Iniciando Setup do Ambiente ADUC-SDR ---") | |
| DEPS_DIR.mkdir(exist_ok=True) | |
| for repo_name, repo_url in REPOS_TO_CLONE.items(): | |
| repo_path = DEPS_DIR / repo_name | |
| if repo_path.exists(): | |
| print(f"Repositório '{repo_name}' já existe. Pulando a clonagem.") | |
| else: | |
| print(f"Clonando '{repo_name}' de {repo_url}...") | |
| run_command(["git", "clone", "--depth", "1", repo_url, str(repo_path)]) | |
| print(f"'{repo_name}' clonado com sucesso.") | |
| print("\n--- Setup do Ambiente Concluído com Sucesso! ---") | |
| print("Você agora pode iniciar a aplicação principal (ex: python app.py).") | |
| if __name__ == "__main__": | |
| main() | |