Spaces:
Paused
Paused
File size: 3,157 Bytes
270fc4d 216c95a 9dfef84 db6f057 9dfef84 a7706fd 270fc4d 24806c6 270fc4d 5af3e86 270fc4d 216c95a 270fc4d 216c95a 270fc4d 216c95a 270fc4d 216c95a 270fc4d 216c95a 270fc4d 216c95a 270fc4d 216c95a 270fc4d 216c95a 270fc4d 216c95a 270fc4d 216c95a 270fc4d |
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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
#!/bin/bash
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 |