|
3 | 3 |
|
4 | 4 | [ ! -z "$DEBUG" ] && set -x
|
5 | 5 |
|
| 6 | +# Default values |
| 7 | +PSQL_VERSION="15" |
| 8 | +MIGRATION_FILE="" |
| 9 | +PORTNO="@PGSQL_DEFAULT_PORT@" |
| 10 | + |
| 11 | +# Function to display help |
| 12 | +print_help() { |
| 13 | + echo "Usage: nix run .#start-client -- [options]" |
| 14 | + echo |
| 15 | + echo "Options:" |
| 16 | + echo " -v, --version [15|16|orioledb-16] Specify the PostgreSQL version to use (required)" |
| 17 | + echo " -f, --file FILE Provide a custom migration script" |
| 18 | + echo " -h, --help Show this help message" |
| 19 | + echo |
| 20 | + echo "Description:" |
| 21 | + echo " This script wraps 'psql' and allows you to specify the PostgreSQL version to use." |
| 22 | + echo " If no migration file is provided, it runs the default Supabase migrations." |
| 23 | + echo |
| 24 | + echo "Examples:" |
| 25 | + echo " nix run .#start-client" |
| 26 | + echo " nix run .#start-client -- --version 15" |
| 27 | + echo " nix run .#start-client -- --version 16 --file custom_migration.sql" |
| 28 | + echo " nix run .#start-client -- --version 16 --port 5433" |
| 29 | +} |
| 30 | + |
| 31 | +# Parse arguments |
| 32 | +while [[ "$#" -gt 0 ]]; do |
| 33 | + case "$1" in |
| 34 | + -v|--version) |
| 35 | + if [[ -n "$2" && ! "$2" =~ ^- ]]; then |
| 36 | + PSQL_VERSION="$2" |
| 37 | + shift 2 |
| 38 | + else |
| 39 | + echo "Error: --version requires an argument (15, 16, or orioledb-16)" |
| 40 | + exit 1 |
| 41 | + fi |
| 42 | + ;; |
| 43 | + -f|--file) |
| 44 | + if [[ -n "$2" && ! "$2" =~ ^- ]]; then |
| 45 | + MIGRATION_FILE="$2" |
| 46 | + shift 2 |
| 47 | + else |
| 48 | + echo "Error: --file requires a filename" |
| 49 | + exit 1 |
| 50 | + fi |
| 51 | + ;; |
| 52 | + -h|--help) |
| 53 | + print_help |
| 54 | + exit 0 |
| 55 | + ;; |
| 56 | + *) |
| 57 | + echo "Unknown option: $1" |
| 58 | + print_help |
| 59 | + exit 1 |
| 60 | + ;; |
| 61 | + esac |
| 62 | +done |
| 63 | + |
| 64 | +# Check if version is provided |
| 65 | +if [[ -z "$PSQL_VERSION" ]]; then |
| 66 | + echo "Error: PostgreSQL version is required." |
| 67 | + print_help |
| 68 | + exit 1 |
| 69 | +fi |
| 70 | + |
6 | 71 | # Determine PostgreSQL version
|
7 |
| -if [ "$1" == "15" ]; then |
| 72 | +if [ "$PSQL_VERSION" == "15" ]; then |
8 | 73 | echo "Starting client for PSQL 15"
|
9 | 74 | PSQL15=@PSQL15_BINDIR@
|
10 | 75 | BINDIR="$PSQL15"
|
11 |
| -elif [ "$1" == "16" ]; then |
| 76 | +elif [ "$PSQL_VERSION" == "16" ]; then |
12 | 77 | echo "Starting client for PSQL 16"
|
13 | 78 | PSQL16=@PSQL16_BINDIR@
|
14 | 79 | BINDIR="$PSQL16"
|
15 |
| -elif [ "$1" == "orioledb-16" ]; then |
| 80 | +elif [ "$PSQL_VERSION" == "orioledb-16" ]; then |
16 | 81 | echo "Starting client for PSQL ORIOLEDB 16"
|
17 | 82 | PSQLORIOLEDB16=@PSQLORIOLEDB16_BINDIR@
|
18 | 83 | BINDIR="$PSQLORIOLEDB16"
|
|
21 | 86 | exit 1
|
22 | 87 | fi
|
23 | 88 |
|
24 |
| -shift 1 |
25 |
| - |
26 | 89 | #vars for migration.sh
|
27 | 90 | export PATH=$BINDIR/bin:$PATH
|
28 | 91 | export POSTGRES_DB=postgres
|
29 | 92 | export POSTGRES_HOST=localhost
|
30 |
| -export POSTGRES_PORT=@PGSQL_DEFAULT_PORT@ |
31 |
| - |
32 |
| -# Optional second argument: path to custom migration script |
33 |
| -if [ -n "$1" ]; then |
34 |
| - MIGRATION_FILE="$1" |
35 |
| -else |
36 |
| - MIGRATION_FILE="" |
37 |
| -fi |
38 | 93 |
|
39 | 94 | PORTNO="${2:-@PGSQL_DEFAULT_PORT@}"
|
40 | 95 | PGSQL_SUPERUSER=@PGSQL_SUPERUSER@
|
|
0 commit comments