git-subtree-dir: vendor/ruvector git-subtree-split: b64c21726f2bb37286d9ee36a7869fef60cc6900
85 lines
2.1 KiB
Bash
Executable File
85 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# RuVector Setup Script for macOS
|
|
# Installs all required dependencies for building RuVector
|
|
#
|
|
set -e
|
|
|
|
echo "RuVector Dependency Setup for macOS"
|
|
echo "===================================="
|
|
echo ""
|
|
|
|
# Check for Homebrew
|
|
if ! command -v brew &> /dev/null; then
|
|
echo "Installing Homebrew..."
|
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
|
|
# Add to PATH for Apple Silicon Macs
|
|
if [ -f "/opt/homebrew/bin/brew" ]; then
|
|
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
fi
|
|
fi
|
|
|
|
# Update Homebrew
|
|
echo "Updating Homebrew..."
|
|
brew update
|
|
|
|
# Install build tools
|
|
echo "Installing build tools..."
|
|
brew install \
|
|
pkg-config \
|
|
openssl \
|
|
cmake \
|
|
git \
|
|
curl
|
|
|
|
# Determine PostgreSQL version to install
|
|
PG_VERSION="${1:-16}"
|
|
echo "Setting up PostgreSQL $PG_VERSION..."
|
|
|
|
# Install PostgreSQL
|
|
echo "Installing PostgreSQL $PG_VERSION..."
|
|
brew install "postgresql@$PG_VERSION"
|
|
|
|
# Link PostgreSQL
|
|
brew link "postgresql@$PG_VERSION" --force 2>/dev/null || true
|
|
|
|
# Add PostgreSQL to PATH
|
|
PG_PATH="/opt/homebrew/opt/postgresql@$PG_VERSION/bin"
|
|
if [ ! -d "$PG_PATH" ]; then
|
|
PG_PATH="/usr/local/opt/postgresql@$PG_VERSION/bin"
|
|
fi
|
|
|
|
export PATH="$PG_PATH:$PATH"
|
|
|
|
# Start PostgreSQL service
|
|
echo "Starting PostgreSQL service..."
|
|
brew services start "postgresql@$PG_VERSION"
|
|
|
|
# Install Rust if not present
|
|
if ! command -v rustc &> /dev/null; then
|
|
echo "Installing Rust..."
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
|
source "$HOME/.cargo/env"
|
|
fi
|
|
|
|
# Install cargo-pgrx
|
|
echo "Installing cargo-pgrx..."
|
|
cargo install cargo-pgrx --version "0.12.9" --locked
|
|
|
|
# Initialize pgrx
|
|
echo "Initializing pgrx for PostgreSQL $PG_VERSION..."
|
|
cargo pgrx init --pg$PG_VERSION "$PG_PATH/pg_config"
|
|
|
|
echo ""
|
|
echo "===================================="
|
|
echo "Setup complete!"
|
|
echo ""
|
|
echo "Add PostgreSQL to your PATH:"
|
|
echo " export PATH=\"$PG_PATH:\$PATH\""
|
|
echo ""
|
|
echo "You can now build RuVector with:"
|
|
echo " cd /path/to/ruvector"
|
|
echo " ./install/install.sh --build-from-source --pg-version $PG_VERSION"
|
|
echo ""
|