File size: 2,236 Bytes
ac23084
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# 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()