File size: 2,414 Bytes
e8b986b
108e5ec
e8b986b
 
dc683d4
e8b986b
3f9d512
e8b986b
 
 
3f9d512
 
 
 
6e402ac
3f9d512
 
 
 
 
 
 
 
 
 
 
 
cdf1c5c
e8b986b
aad0f0c
 
3f9d512
aad0f0c
 
dc683d4
3f9d512
 
dc683d4
aad0f0c
3f9d512
aad0f0c
dc683d4
aad0f0c
 
e337404
e8b986b
aad0f0c
 
 
 
3f9d512
aad0f0c
 
 
e8b986b
f495c7f
bdfb415
3f9d512
aad0f0c
 
 
dc683d4
 
aad0f0c
 
dc683d4
aad0f0c
e8b986b
aad0f0c
3f9d512
aad0f0c
3f9d512
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
#!/bin/bash
REPO_URL="https://huggingface.co/datasets/Shuyun18/hermes"
LOCAL_REPO="/tmp/hermes_data"
HERMES_DIR="/root/.hermes"
HERMES_HUDUI_DIR="/root/.hermes-hudui"

# 防止 Git 因交互式提示挂起
export GIT_TERMINAL_PROMPT=0
export GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no"

if [ -z "$HF_TOKEN" ]; then
    echo "Warning: HF_TOKEN not found. Data sync disabled."
    exit 0
fi

# 配置 Git 用户信息
git config --global user.name "Shuyun18"
git config --global user.email "shuyun18@users.noreply.huggingface.co"

# 验证当前认证状态
pip install huggingface_hub -q
echo "=== HF Authentication Status ==="
hf whoami
echo "================================"

# 使用带 token 的 URL 进行 git 操作
REPO_URL_WITH_TOKEN="https://Shuyun18:${HF_TOKEN}@huggingface.co/datasets/Shuyun18/hermes"

if [ "$1" == "load" ]; then
    echo "Loading data from dataset..."
    rm -rf "$LOCAL_REPO"
    git clone "$REPO_URL_WITH_TOKEN" "$LOCAL_REPO" || echo "Dataset repo is empty or not found."
    
    # 确保本地核心目录存在
    mkdir -p "$HERMES_DIR" "$HERMES_HUDUI_DIR"
    
    # 确保从仓库拉取的子目录存在,避免 rsync 报错
    mkdir -p "$LOCAL_REPO/hermes" "$LOCAL_REPO/hermes-hudui"
    
    # 将子目录数据分别同步到对应位置
    rsync -av --exclude='.git' "$LOCAL_REPO/hermes/" "$HERMES_DIR/"
    rsync -av --exclude='.git' "$LOCAL_REPO/hermes-hudui/" "$HERMES_HUDUI_DIR/"
    
    echo "Data loaded."

elif [ "$1" == "save" ]; then
    echo "Saving data to dataset..."
    
    # 先 clone 仓库(确保有正确的 git 历史)
    rm -rf "$LOCAL_REPO"
    git clone "$REPO_URL_WITH_TOKEN" "$LOCAL_REPO" || {
        echo "Failed to clone repo, creating new one..."
        mkdir -p "$LOCAL_REPO"
        cd "$LOCAL_REPO"
        git init
        git checkout -b main
        git remote add origin "$REPO_URL_WITH_TOKEN"
    }
    cd "$LOCAL_REPO"
    
    # 确保本地和目标子目录存在
    mkdir -p "$LOCAL_REPO/hermes" "$LOCAL_REPO/hermes-hudui"
    mkdir -p "$HERMES_DIR" "$HERMES_HUDUI_DIR"
    
    rsync -av --delete --exclude='.git' "$HERMES_DIR/" "$LOCAL_REPO/hermes/"
    rsync -av --delete --exclude='.git' "$HERMES_HUDUI_DIR/" "$LOCAL_REPO/hermes-hudui/"
    
    git add .
    git commit -m "Auto-sync data at $(date)" || echo "Nothing to commit"
    git push -u origin main || echo "Push failed"
    echo "Data saved."
fi