#!/bin/bash HF_TOKEN="${HF_TOKEN:?HF_TOKEN must be set}" huggingface-cli login --token "$HF_TOKEN" --add-to-git-credential 2>&1 | head -1 HF_USER="${HF_USER:-$(huggingface-cli whoami 2>/dev/null | head -1 | cut -d' ' -f1)}" DATASET="${DATASET:-${HF_USER}/mc-server-data}" init_dataset() { echo "التحقق من Dataset: $DATASET" if huggingface-cli repo create "$DATASET" --type dataset 2>&1; then echo "✅ تم إنشاء Dataset" else echo "⚠️ Dataset موجود مسبقاً" fi } pull_files() { echo "سحب الملفات من Dataset..." mkdir -p /tmp/sync if huggingface-cli download "$DATASET" --local-dir /tmp/sync --token "$HF_TOKEN" 2>&1; then cp -r /tmp/sync/* /minecraft/ 2>/dev/null || echo "لا توجد ملفات في Dataset" rm -rf /tmp/sync echo "✅ تم سحب الملفات" else echo "ℹ️ Dataset فاضي أو لا يمكن السحب" fi } push_file() { [ -f "$1" ] && huggingface-cli upload "$DATASET" "$1" --token "$HF_TOKEN" 2>&1 && echo "✅ رفع $1" } backup_world() { echo "نسخ احتياطي للعالم..." tar czf /tmp/world-backup.tar.gz -C /minecraft world 2>/dev/null if huggingface-cli upload "$DATASET" /tmp/world-backup.tar.gz --token "$HF_TOKEN" 2>&1; then echo "✅ تم نسخ العالم" fi rm -f /tmp/world-backup.tar.gz } case "${1:-all}" in init) init_dataset ;; pull) pull_files ;; push) shift; push_file "$@" ;; backup) backup_world ;; all) init_dataset pull_files ;; esac