File size: 1,620 Bytes
e4fd09c | 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 | #!/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
|