File size: 1,430 Bytes
4f54dc8
 
 
 
 
 
140619f
4f54dc8
 
140619f
 
 
 
 
 
 
 
 
 
 
 
4f54dc8
 
140619f
 
4f54dc8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140619f
4f54dc8
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/usr/bin/env python3
"""
将 ~/.local/share/opencode 上传到 Hugging Face Dataset 仓库。
需设置环境变量: HF_TOKEN, OPENCODE_DATASET_REPO。
"""
import os
import re
import sys

def _normalize_repo_id(value):
    """接受 repo_id 或完整 URL,返回 namespace/repo_name。"""
    if not value or not value.strip():
        return None
    value = value.strip()
    m = re.search(r"(?:huggingface\.co/datasets/|^)([\w.-]+/[\w.-]+)/?$", value)
    if m:
        return m.group(1)
    if "/" in value:
        return value
    return None

def main():
    token = os.environ.get("HF_TOKEN")
    raw = os.environ.get("OPENCODE_DATASET_REPO")
    repo_id = _normalize_repo_id(raw)
    data_dir = os.path.expanduser("~/.local/share/opencode")

    if not token or not repo_id:
        return 0

    if not os.path.isdir(data_dir):
        return 0

    try:
        from huggingface_hub import HfApi
    except ImportError:
        print("save: huggingface_hub not installed, skip save", file=sys.stderr)
        return 0

    try:
        api = HfApi(token=token)
        api.upload_folder(
            folder_path=data_dir,
            path_in_repo=".",
            repo_id=repo_id,
            repo_type="dataset",
            token=token,
        )
    except Exception as e:
        print(f"save: upload failed ({e})", file=sys.stderr)
        return 1
    return 0

if __name__ == "__main__":
    sys.exit(main())