mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-30 06:12:03 +00:00
- Install OpenCode CLI in Dockerfile alongside Claude and Cursor - Add automaker-opencode-config volume for persisting auth - Add OpenCode directory setup in docker-entrypoint.sh - Update docker-isolation.md with OpenCode documentation - Add OpenCode bind mount example to docker-compose.override.yml.example
61 lines
2.2 KiB
Bash
Executable File
61 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
# Ensure Claude CLI config directory exists with correct permissions
|
|
if [ ! -d "/home/automaker/.claude" ]; then
|
|
mkdir -p /home/automaker/.claude
|
|
fi
|
|
|
|
# If CLAUDE_OAUTH_CREDENTIALS is set, write it to the credentials file
|
|
# This allows passing OAuth tokens from host (especially macOS where they're in Keychain)
|
|
if [ -n "$CLAUDE_OAUTH_CREDENTIALS" ]; then
|
|
echo "$CLAUDE_OAUTH_CREDENTIALS" > /home/automaker/.claude/.credentials.json
|
|
chmod 600 /home/automaker/.claude/.credentials.json
|
|
fi
|
|
|
|
# Fix permissions on Claude CLI config directory
|
|
chown -R automaker:automaker /home/automaker/.claude
|
|
chmod 700 /home/automaker/.claude
|
|
|
|
# Ensure Cursor CLI config directory exists with correct permissions
|
|
# This handles both: mounted volumes (owned by root) and empty directories
|
|
if [ ! -d "/home/automaker/.cursor" ]; then
|
|
mkdir -p /home/automaker/.cursor
|
|
fi
|
|
chown -R automaker:automaker /home/automaker/.cursor
|
|
chmod -R 700 /home/automaker/.cursor
|
|
|
|
# Ensure OpenCode CLI config directory exists with correct permissions
|
|
# OpenCode stores config and auth in ~/.local/share/opencode/
|
|
if [ ! -d "/home/automaker/.local/share/opencode" ]; then
|
|
mkdir -p /home/automaker/.local/share/opencode
|
|
fi
|
|
chown -R automaker:automaker /home/automaker/.local/share/opencode
|
|
chmod -R 700 /home/automaker/.local/share/opencode
|
|
|
|
# OpenCode also uses ~/.config/opencode for configuration
|
|
if [ ! -d "/home/automaker/.config/opencode" ]; then
|
|
mkdir -p /home/automaker/.config/opencode
|
|
fi
|
|
chown -R automaker:automaker /home/automaker/.config/opencode
|
|
chmod -R 700 /home/automaker/.config/opencode
|
|
|
|
# If CURSOR_AUTH_TOKEN is set, write it to the cursor auth file
|
|
# On Linux, cursor-agent uses ~/.config/cursor/auth.json for file-based credential storage
|
|
# The env var CURSOR_AUTH_TOKEN is also checked directly by cursor-agent
|
|
if [ -n "$CURSOR_AUTH_TOKEN" ]; then
|
|
CURSOR_CONFIG_DIR="/home/automaker/.config/cursor"
|
|
mkdir -p "$CURSOR_CONFIG_DIR"
|
|
# Write auth.json with the access token
|
|
cat > "$CURSOR_CONFIG_DIR/auth.json" << EOF
|
|
{
|
|
"accessToken": "$CURSOR_AUTH_TOKEN"
|
|
}
|
|
EOF
|
|
chmod 600 "$CURSOR_CONFIG_DIR/auth.json"
|
|
chown -R automaker:automaker /home/automaker/.config
|
|
fi
|
|
|
|
# Switch to automaker user and execute the command
|
|
exec gosu automaker "$@"
|