File size: 1,965 Bytes
d8afd6f
 
 
 
 
 
a281c6e
 
d8afd6f
 
 
 
 
 
 
 
 
 
a281c6e
 
 
d8afd6f
 
 
 
 
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
#!/usr/bin/env python3
"""Upload the static site to a Hugging Face Space.  Usage: HF_TOKEN=... python3 tools/deploy.py [user/space]"""
import os, shutil, sys, tempfile
from huggingface_hub import HfApi
root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
repo = sys.argv[1] if len(sys.argv) > 1 else 'HelloSun/esp32emu'
token = os.environ.get('HF_TOKEN')
if not token: sys.exit('ERROR: environment variable HF_TOKEN is not set (export HF_TOKEN=hf_...)')
stage = tempfile.mkdtemp()
def cp(src, dst=None):
    d = os.path.join(stage, dst or os.path.basename(src)); os.makedirs(os.path.dirname(d), exist_ok=True)
    if os.path.isdir(src): shutil.copytree(src, d, ignore=shutil.ignore_patterns('*.bin', '*.elf', '*.wasm', '__pycache__', 'rom', '*.ppm', '*.png'))
    else: shutil.copy(src, d)
for f in ('index.html', 'style.css', 'app.js', 'assets.js'): cp(os.path.join(root, 'web', f))
cp(os.path.join(root, 'web', 'js'), 'js')
cp(os.path.join(root, 'README.md'))
cp(os.path.join(root, 'wasm', 'xtensa.c'), 'wasm/xtensa.c'); cp(os.path.join(root, 'wasm', 'build.sh'), 'wasm/build.sh')
cp(os.path.join(root, 'firmware', 'dosvga32'), 'firmware/dosvga32'); cp(os.path.join(root, 'firmware', 'README.md'), 'firmware/README.md')
cp(os.path.join(root, 'tools'), 'tools'); cp(os.path.join(root, 'scripts'), 'scripts'); cp(os.path.join(root, 'docs'), 'docs'); cp(os.path.join(root, 'package.json'))
ar = os.path.join(root, 'dist', 'esp32emu-source.tar.gz')
if os.path.exists(ar): cp(ar, 'downloads/esp32emu-source.tar.gz')
open(os.path.join(stage, '.gitattributes'), 'w').write('# keep everything as normal git files (no LFS) so the static site is served directly\n')
api = HfApi(token=token)
api.create_repo(repo, repo_type='space', space_sdk='static', exist_ok=True)
api.upload_folder(folder_path=stage, repo_id=repo, repo_type='space', commit_message='ESP32 emulator update', delete_patterns=['*'])
print('uploaded to https://huggingface.co/spaces/' + repo)