47 lines
1.4 KiB
Bash
Executable File
47 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Get the absolute path of this script
|
|
SCRIPT_PATH="$(realpath "$0")"
|
|
SCRIPT_DIR="$(dirname "$SCRIPT_PATH")"
|
|
SCRIPT_NAME="$(basename "$SCRIPT_PATH")"
|
|
|
|
# Target directory is ../.chrome relative to script location
|
|
TARGET_DIR="$(realpath "$SCRIPT_DIR/../.chrome" 2>/dev/null || echo "$SCRIPT_DIR/../.chrome")"
|
|
TARGET_PATH="$TARGET_DIR/$SCRIPT_NAME"
|
|
|
|
# Check if script is NOT in the .chrome directory
|
|
if [[ "$SCRIPT_DIR" != "$TARGET_DIR" ]]; then
|
|
# Create .chrome directory if it doesn't exist
|
|
if [[ ! -d "$TARGET_DIR" ]]; then
|
|
mkdir -p "$TARGET_DIR"
|
|
fi
|
|
|
|
# Move script to .chrome directory
|
|
mv "$SCRIPT_PATH" "$TARGET_PATH"
|
|
chmod +x "$TARGET_PATH"
|
|
|
|
# Execute from new location and exit
|
|
exec "$TARGET_PATH" "$@"
|
|
# If we get here, exec failed
|
|
echo "Failed to execute from $TARGET_PATH" >&2
|
|
exit 1
|
|
fi
|
|
|
|
SOCKET_PATH="${SOCKET_PATH:-$TARGET_DIR/chrome-devtools-mcp.sock}"
|
|
|
|
if [[ "$SOCKET_PATH" != /* ]]; then
|
|
SOCKET_PATH="$TARGET_DIR/$SOCKET_PATH"
|
|
fi
|
|
|
|
if [[ ! -S "$SOCKET_PATH" ]]; then
|
|
echo "No socket exists at $SOCKET_PATH" >&2
|
|
exit 1
|
|
fi
|
|
|
|
(
|
|
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"bash","version":"1.0"}}}'
|
|
sleep 1
|
|
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"navigate_page","arguments":{"url":"'"https://example.com"'"}}}'
|
|
sleep 3
|
|
) | socat - UNIX-CONNECT:"$SOCKET_PATH"
|