Spaces:
Paused
Paused
| cp /app/LTX-Video/. /data/LTX-Video -rdfv | |
| tree -L 6 /data | |
| # ============================================================================== | |
| # GERENCIAMENTO DE LOGS NA INICIALIZAÇÃO | |
| # ============================================================================== | |
| mkdir /data/logs | |
| LOG_FILE="/data/logs/session.log" | |
| # Verifica se o arquivo de log da sessão anterior existe e não está vazio | |
| if [ -f "$LOG_FILE" ] && [ -s "$LOG_FILE" ]; then | |
| echo "[STARTUP] Log da sessão anterior encontrado. Preparando para upload." | |
| # Cria um nome de arquivo com timestamp para o upload | |
| TODAY=$(date +%Y-%m-%d) | |
| TIMESTAMP=$(date +%H-%M-%S) | |
| UPLOAD_FILENAME="log-${TIMESTAMP}.txt" | |
| export REPO_PATH="logs/${TODAY}/${UPLOAD_FILENAME}" | |
| # Move o log antigo para um local temporário para evitar que a aplicação comece a escrever nele | |
| TEMP_LOG_PATH="/data/previous_session.log" | |
| mv "$LOG_FILE" "$TEMP_LOG_PATH" | |
| echo "[STARTUP] Fazendo upload de '$TEMP_LOG_PATH' para o repositório em '$REPO_PATH'..." | |
| # Executa o script de upload do Python em segundo plano para não bloquear a inicialização | |
| # O token HF_TOKEN deve estar definido como uma variável de ambiente no seu contêiner | |
| python - <<'PY' & | |
| import os | |
| import time | |
| from huggingface_hub import HfApi, HfFolder | |
| # Adiciona uma pequena espera para garantir que a rede esteja pronta | |
| time.sleep(5) | |
| repo = os.environ.get("SELF_HF_REPO_ID", "eeuuia/Tmp") | |
| token = os.getenv("HF_TOKEN") | |
| log_to_upload = "/data/previous_session.log" | |
| repo_path = os.getenv("REPO_PATH",'logs/log.log') | |
| if not token: | |
| print("[UPLOAD_SCRIPT] AVISO: HF_TOKEN ausente; upload do log desabilitado.") | |
| # Limpa o arquivo temporário mesmo assim | |
| if os.path.exists(log_to_upload): | |
| os.remove(log_to_upload) | |
| exit() | |
| if not repo_path: | |
| print("[UPLOAD_SCRIPT] ERRO: REPO_PATH não definido.") | |
| exit() | |
| try: | |
| print(f"[UPLOAD_SCRIPT] Iniciando upload para {repo}...") | |
| api = HfApi(token=token) | |
| api.upload_file( | |
| path_or_fileobj=log_to_upload, | |
| path_in_repo=repo_path, | |
| repo_id=repo, | |
| repo_type="model", | |
| ) | |
| print(f"[UPLOAD_SCRIPT] Upload de log concluído com sucesso para: {repo_path}") | |
| finally: | |
| # Garante que o arquivo de log temporário seja sempre removido após a tentativa de upload | |
| if os.path.exists(log_to_upload): | |
| os.remove(log_to_upload) | |
| print("[UPLOAD_SCRIPT] Arquivo de log temporário limpo.") | |
| PY | |
| else | |
| echo "[STARTUP] Nenhum log da sessão anterior encontrado. Iniciando com um log limpo." | |
| fi | |
| # ============================================================================== | |
| # INICIALIZAÇÃO DA APLICAÇÃO PRINCIPAL | |
| # ============================================================================== | |
| echo "[STARTUP] Iniciando a aplicação principal Gradio (app.py)..." | |
| # Executa o setup.py primeiro para garantir que as dependências estão prontas | |
| python /app/setup.py | |
| # Inicia a aplicação Gradio | |
| # O `exec` substitui o processo do shell pelo processo do python, | |
| # o que é uma boa prática para scripts de inicialização de contêineres. | |
| exec python /app/app.py |