opencode / start.sh
coincreator's picture
Update start.sh
2bf4d46 verified
Raw
History Blame Contribute Delete
1.63 kB
#!/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 <<EOT > /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 "$@"