mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-30 06:12:03 +00:00
- Introduced a new markdown file summarizing various attempts to install the Cursor CLI in Docker, detailing approaches, results, and key learnings. - Updated Dockerfile to ensure proper installation of Cursor CLI for the non-root user, including necessary PATH adjustments for interactive shells. - Enhanced entrypoint script to manage OAuth tokens for both Claude and Cursor CLIs, ensuring correct permissions and directory setups. - Added scripts for extracting OAuth tokens from macOS Keychain and Linux JSON files for seamless integration with Docker. - Updated docker-compose files to support persistent storage for CLI configurations and authentication tokens. These changes improve the development workflow and provide clear guidance on CLI installation and authentication processes.
52 lines
1.8 KiB
Bash
Executable File
52 lines
1.8 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
|
|
|
|
# Fix permissions on Cursor CLI config directory if it exists
|
|
# This handles the case where a volume is mounted and owned by root
|
|
if [ -d "/home/automaker/.cursor" ]; then
|
|
chown -R automaker:automaker /home/automaker/.cursor
|
|
chmod -R 700 /home/automaker/.cursor
|
|
fi
|
|
|
|
# Ensure the directory exists with correct permissions if volume is empty
|
|
if [ ! -d "/home/automaker/.cursor" ]; then
|
|
mkdir -p /home/automaker/.cursor
|
|
chown automaker:automaker /home/automaker/.cursor
|
|
chmod 700 /home/automaker/.cursor
|
|
fi
|
|
|
|
# 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 "$@"
|