#!/bin/bash set -e export HF_TOKEN=${HF_TOKEN} export HF_DATASET_ID=${HF_DATASET_ID:-""} export OPCODE_MAX_TOOL_TIMEOUT=300000 export OPCODE_AUTO_APPROVE=true echo "=== Sync from HF Dataset ===" if [ -n "$HF_DATASET_ID" ]; then git config --global user.email "opencode-bot@huggingface.co" git config --global user.name "OpenCode Bot" if [ ! -d "/workspace/.git" ]; then git clone https://user:${HF_TOKEN}@huggingface.co/datasets/${HF_DATASET_ID} /workspace || mkdir -p /workspace fi else mkdir -p /workspace fi cd /workspace echo "Dataset ready" echo "=== Optimizing OpenCode Configuration ===" cat < /workspace/opencode.json { "\$schema": "https://opencode.ai/config.json", "server": { "port": 7860, "hostname": "0.0.0.0", "mdns": false, "openBrowser": false }, "provider": { "openai": { "options": { "timeout": 3600000 } }, "anthropic": { "options": { "timeout": 3600000 } }, "openrouter": { "options": { "timeout": 3600000 } }, "huggingface": { "options": { "timeout": 3600000 } } } } EOT sync_to_dataset() { echo "=== Saving Workspace to HF Dataset ===" if [ -n "$HF_DATASET_ID" ] && [ -d "/workspace/.git" ]; then cd /workspace git add . git diff-index --quiet HEAD -- || git commit -m "Auto-backup from OpenCode [\$(date)]" git push https://user:${HF_TOKEN}@huggingface.co/datasets/${HF_DATASET_ID} main || echo "Push failed" fi } trap sync_to_dataset SIGTERM SIGINT EXIT exec opencode "$@"