Files
wehub-resource-sync 91e75e620b
CI: cua-driver distro-compat matrix / Resolve release version (push) Waiting to run
CI: cua-driver distro-compat matrix / debian:12 (glibc 2.36) (push) Blocked by required conditions
CI: cua-driver distro-compat matrix / fedora:41 (glibc 2.40) (push) Blocked by required conditions
CI: cua-driver distro-compat matrix / rockylinux:9 (glibc 2.34) (push) Blocked by required conditions
CI: cua-driver distro-compat matrix / ubuntu:22.04 (glibc 2.35) (push) Blocked by required conditions
CI: cua-driver distro-compat matrix / ubuntu:24.04 (glibc 2.39) (push) Blocked by required conditions
CI: cua-driver distro-compat matrix / Distro compat summary (push) Blocked by required conditions
CI: Nix Linux Rust source / Nix / compositor build (push) Waiting to run
CI: Nix Linux Rust source / Nix / driver package (push) Waiting to run
CI: Nix Linux Rust source / Nix / Rust unit tests (push) Waiting to run
CI: Rust Linux unit / Rust Linux unit and compile (push) Waiting to run
CI: Rust Windows unit / Rust Windows unit and compile (push) Waiting to run
CI: SPDX Headers / Check SPDX headers (warn-only) (push) Waiting to run
CD: Docs MCP Server / build (linux/amd64) (push) Waiting to run
CD: Docs MCP Server / build (linux/arm64) (push) Waiting to run
CD: Docs MCP Server / merge (push) Blocked by required conditions
chore: import upstream snapshot with attribution
2026-07-13 13:03:19 +08:00

74 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
set -e
# Create the ~/.cua directory if it doesn't exist
mkdir -p "$HOME/.cua"
# Create start_mcp_server.sh script in ~/.cua directory
cat > "$HOME/.cua/start_mcp_server.sh" << 'EOF'
#!/bin/bash
set -e
# Function to check if a directory is writable
is_writable() {
[ -w "$1" ]
}
# Function to check if a command exists (silent)
command_exists() {
command -v "$1" >/dev/null 2>&1
}
# Find a writable directory for the virtual environment
if is_writable "$HOME"; then
VENV_DIR="$HOME/.cua-mcp-venv"
elif is_writable "/tmp"; then
VENV_DIR="/tmp/.cua-mcp-venv"
else
# Try to create a directory in the current working directory
TEMP_DIR="$(pwd)/.cua-mcp-venv"
if is_writable "$(pwd)"; then
VENV_DIR="$TEMP_DIR"
else
echo "Error: Cannot find a writable directory for the virtual environment." >&2
exit 1
fi
fi
# Check if Python is installed
if ! command_exists python3; then
echo "Error: Python 3 is not installed." >&2
exit 1
fi
# Check if pip is installed
if ! command_exists pip3; then
echo "Error: pip3 is not installed." >&2
exit 1
fi
# Create virtual environment if it doesn't exist
if [ ! -d "$VENV_DIR" ]; then
# Redirect output to prevent JSON parsing errors in Claude
python3 -m venv "$VENV_DIR" >/dev/null 2>&1
fi
# Activate virtual environment
source "$VENV_DIR/bin/activate"
# Always install/upgrade the latest version of cua-mcp-server
pip install --upgrade "cua-mcp-server"
# Run the MCP server with isolation from development paths
cd "$VENV_DIR" # Change to venv directory to avoid current directory in path
python3 -c "from mcp_server.server import main; main()"
EOF
# Make the script executable
chmod +x "$HOME/.cua/start_mcp_server.sh"
echo "MCP server startup script created at $HOME/.cua/start_mcp_server.sh"