Files
release-factory/opencode-workstation-builder/image/scripts/install-opencode-plugins.sh
T
okxlin c09c22db85 fix: restore scheduled image builds and security checks (#100)
* fix: restore image security gates and OpenClaw sandbox verification

* fix: refresh proxy Go toolchain and code-server shell quoting
2026-10-12 18:26:23 +08:00

44 lines
1.1 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
: "${DCP_INSTALL:=1}"
: "${DCP_GLOBAL:=1}"
: "${OPENCODE_CONFIG_DIR:=$HOME/.config/opencode}"
: "${OPENCODE_BASELINE_DIR:=/opt/opencode}"
log() {
printf '[plugins] %s\n' "$*"
}
ensure_opencode() {
if ! command -v opencode >/dev/null 2>&1; then
log 'opencode is required before installing plugins'
exit 1
fi
}
ensure_config_dir() {
mkdir -p "$OPENCODE_CONFIG_DIR"
}
install_dcp() {
[[ "${DCP_INSTALL}" == "1" ]] || return 0
: "${DCP_PACKAGE:=$(node -p 'require(process.argv[1]).config.dcpPackage' "${OPENCODE_BASELINE_DIR}/package.json")}"
ensure_config_dir
python3 /app/scripts/prepare-dcp-dependencies.py "${DCP_PACKAGE}"
log 'installing Dynamic Context Pruning plugin'
if [[ "${DCP_GLOBAL}" == "1" ]]; then
opencode plugin "${DCP_PACKAGE}" --global
else
opencode plugin "${DCP_PACKAGE}"
fi
python3 /app/scripts/update_opencode_config.py plugin "${DCP_PACKAGE}"
if [[ -n "${DCP_CONFIG_B64:-}" ]]; then
log 'writing DCP config from DCP_CONFIG_B64'
printf '%s' "$DCP_CONFIG_B64" | base64 -d > "$OPENCODE_CONFIG_DIR/dcp.jsonc"
fi
}
ensure_opencode
install_dcp