Files
sure/bin/codex-env
Juan José Mata 972648b66d Keep Codex running with new 3.4.7 Ruby
Added Ruby version compatibility check and handling in codex-env script.

Signed-off-by: Juan José Mata <juanjo.mata@gmail.com>
2025-11-14 09:54:22 +01:00

57 lines
2.5 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# Disable profile loading to avoid environment errors
export ENV=""
export BASH_ENV=""
echo "Installing PostgreSQL and dependencies..."
apt-get update -qq
apt-get install -yqq wget unzip libyaml-dev build-essential curl git libssl-dev libreadline-dev zlib1g-dev xz-utils ca-certificates libpq-dev vim redis-server postgresql libvips libvips-dev ffmpeg
echo "Starting PostgreSQL cluster..."
pg_ctlcluster --skip-systemctl-redirect 16 main start
echo "Configuring PostgreSQL authentication..."
# Configure pg_hba.conf to allow local connections without password
PG_HBA_CONF="/etc/postgresql/16/main/pg_hba.conf"
if [ -f "$PG_HBA_CONF" ]; then
# Backup original config
cp "$PG_HBA_CONF" "$PG_HBA_CONF.backup"
# Update local connections to use 'trust' authentication for development
sed -i 's/^local all all peer$/local all all trust/' "$PG_HBA_CONF"
sed -i 's/^host all all 127.0.0.1\/32 scram-sha-256$/host all all 127.0.0.1\/32 trust/' "$PG_HBA_CONF"
sed -i 's/^host all all ::1\/128 scram-sha-256$/host all all ::1\/128 trust/' "$PG_HBA_CONF"
echo "Updated PostgreSQL authentication configuration"
fi
echo "Reloading PostgreSQL configuration..."
pg_ctlcluster --skip-systemctl-redirect 16 main reload
echo "Creating database user for $(whoami)..."
# Use runuser instead of su to avoid profile loading issues
runuser -l postgres -c "createuser -s $(whoami)" 2>/dev/null || echo "User may already exist"
echo "Starting Redis server..."
service redis-server start
# Check Ruby version compatibility
RUBY_VERSION=$(cat .ruby-version | tr -d '[:space:]')
CURRENT_RUBY=$(ruby -v | awk '{print $2}' | cut -d'p' -f1)
echo "Ruby version check: $CURRENT_RUBY (required: $RUBY_VERSION)"
# Removing Ruby version requirement from Gemfile
if [ "$CURRENT_RUBY" != "$RUBY_VERSION" ]; then
echo "Ruby version mismatch — commenting ruby version requirement in Gemfile..."
# Only comment if the line isn't already commented
sed -i 's/^ruby file: "\.ruby-version"$/#&/' Gemfile
# Ignore Gemfile changes for this session
git update-index --assume-unchanged Gemfile Gemfile.lock
fi
echo "Environment setup completed successfully!"
echo "PostgreSQL and Redis are now running."
echo "You can now run 'bin/setup' to prepare your Rails application and database."