Download scripts/deploy_agent.py from Echocq/clawemail: direct link, hf CLI and curl.
- Browser
- Download file 2.26 kB
-
https://huggingface.co/spaces/Echocq/clawemail/resolve/main/scripts/deploy_agent.py
- Command line
-
hf download hf://spaces/Echocq/clawemail/scripts/deploy_agent.py
-
curl -L -o deploy_agent.py https://huggingface.co/spaces/Echocq/clawemail/resolve/main/scripts/deploy_agent.py
2.26 kB
| #!/usr/bin/env python3 | |
| """Deploy the 参考clawemail mail-agent as its own HF Docker Space. | |
| Reads all credentials from the local .env (gitignored). Creates the space, | |
| injects secrets (CLAW account + the agent api key), uploads the agent folder | |
| (HF builds the image), and restarts it. | |
| python scripts/deploy_agent.py | |
| """ | |
| import os | |
| import sys | |
| REPO_ID = "Echocq/clawemail-agent" | |
| ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | |
| AGENT_DIR = os.path.join(ROOT, "参考clawemail") | |
| CLAW_EMAIL = "echocq@claw.163.com" | |
| IGNORE = ["node_modules/*", ".state-test*", ".git/*", "*.log"] | |
| def env(name): | |
| path = os.path.join(ROOT, ".env") | |
| for line in open(path, encoding="utf-8"): | |
| line = line.strip() | |
| if line.startswith(f"{name}=") and "=" in line: | |
| return line.split("=", 1)[1].strip().strip('"').strip("'") | |
| return None | |
| def main() -> int: | |
| token = env("HF_TOKEN") | |
| claw_key = env("CLAW_API_KEY") | |
| agent_key = env("CLAWEMAIL_API_KEY") | |
| if not (token and claw_key and agent_key): | |
| print("missing HF_TOKEN / CLAW_API_KEY / CLAWEMAIL_API_KEY in .env", file=sys.stderr) | |
| return 2 | |
| from huggingface_hub import HfApi | |
| api = HfApi(token=token) | |
| print(f"auth: {api.whoami().get('name')}") | |
| api.create_repo(repo_id=REPO_ID, repo_type="space", space_sdk="docker", | |
| exist_ok=True, private=False) | |
| print(f"space ready: {REPO_ID}") | |
| api.add_space_secret(repo_id=REPO_ID, key="CLAW_EMAIL", value=CLAW_EMAIL) | |
| api.add_space_secret(repo_id=REPO_ID, key="CLAW_API_KEY", value=claw_key) | |
| api.add_space_secret(repo_id=REPO_ID, key="CLAWEMAIL_API_KEY", value=agent_key) | |
| print("secrets set: CLAW_EMAIL, CLAW_API_KEY, CLAWEMAIL_API_KEY") | |
| commit = api.upload_folder(repo_id=REPO_ID, repo_type="space", | |
| folder_path=AGENT_DIR, ignore_patterns=IGNORE, | |
| commit_message="deploy clawemail mail-agent (api-key gated remote service)") | |
| print(f"uploaded: {getattr(commit, 'oid', commit)}") | |
| api.restart_space(repo_id=REPO_ID) | |
| print("restart -> BUILDING") | |
| print(f"address: https://echocq-clawemail-agent.hf.space") | |
| return 0 | |
| if __name__ == "__main__": | |
| raise SystemExit(main()) | |