Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions psql/.psql-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
18
32 changes: 32 additions & 0 deletions psql/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env bash
#
# Install PostgreSQL.

set -euo pipefail

DOTFILES_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")"/..; pwd)
source "$DOTFILES_ROOT/lib/logger.sh"

info 'Installing PostgreSQL'
if ! command -v brew > /dev/null; then
user 'Homebrew not found. Would you like to install Homebrew first? (y/n)'
read -r -p '> ' install_brew
if [[ "$install_brew" =~ ^[Yy]$ ]]; then
source "$DOTFILES_ROOT/homebrew/install.sh"
source "$DOTFILES_ROOT/homebrew/path.zsh"
else
fail 'Homebrew is required to install PostgreSQL.'
exit 1
fi
fi
# Get available PostgreSQL versions
available_versions=$(brew search postgresql@ | grep -E '^postgresql@[0-9.]+$' | sed 's/postgresql@//')
user 'Which PostgreSQL version would you like to install?'
info 'Available versions:'
info_list "$available_versions"
read -r -p '> ' psql_version
info "Installing PostgreSQL@$psql_version"
brew install postgresql@"$psql_version"
# Store the selected version for path.zsh
echo "$psql_version" > "$(dirname "${BASH_SOURCE[0]}")/.psql-version"
success "PostgreSQL@$psql_version installed"
7 changes: 7 additions & 0 deletions psql/path.zsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
if [[ -f "$(dirname "$0")/.psql-version" ]]; then
psql_version=$(cat "$(dirname "$0")/.psql-version")
export PATH="/opt/homebrew/opt/postgresql@$psql_version/bin:$PATH"
export LDFLAGS="-L/opt/homebrew/opt/postgresql@$psql_version/lib"
export CPPFLAGS="-I/opt/homebrew/opt/postgresql@$psql_version/include"
export PKG_CONFIG_PATH="/opt/homebrew/opt/postgresql@$psql_version/lib/pkgconfig"
fi
Loading