1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #!/bin/bash
- set -e
- cdc_setup_hba_conf() {
-
-
- PG_HBA="$PGDATA/pg_hba.conf"
- if [ ! -f "$PG_HBA" ]; then
- echo "DB not initialized. Postgres will take care of pg_hba"
- elif [ "$(grep -c -E "^host\s+replication" "$PGDATA"/pg_hba.conf)" != 0 ]; then
- echo "Replication config already present in pg_hba. Not changing anything."
- else
-
- /docker-entrypoint-initdb.d/init_hba.sh
- fi
- }
- install_wal2json() {
-
-
-
-
-
-
-
-
- set +e
- LATEST_VERSION_FILE="/wal2json/latest.so"
- ARCH=$(uname -m)
- FILE_NAME="wal2json-Linux-$ARCH-musl.so"
- LATEST_VERSION=$(
- wget "https://api.github.com/repos/getsentry/wal2json/releases/latest" -O - |
- grep '"tag_name":' |
- sed -E 's/.*"([^"]+)".*/\1/'
- )
- if [[ $LATEST_VERSION ]]; then
- if [ ! -f "/wal2json/$LATEST_VERSION/$FILE_NAME" ]; then
- mkdir -p "/wal2json/$LATEST_VERSION"
- if wget \
- "https://github.com/getsentry/wal2json/releases/download/$LATEST_VERSION/$FILE_NAME" \
- -P "/wal2json/$LATEST_VERSION/"; then
- ln -sf "/wal2json/$LATEST_VERSION/$FILE_NAME" "$LATEST_VERSION_FILE"
- fi
- fi
- ln -sf "$LATEST_VERSION_FILE" /usr/local/lib/postgresql/wal2json.so
- elif [ -f $LATEST_VERSION_FILE ]; then
-
-
- REAL_FILE=$(realpath $LATEST_VERSION_FILE)
- echo "Cannot download latest version. Found $REAL_FILE on disk"
- ln -sf "$LATEST_VERSION_FILE" /usr/local/lib/postgresql/wal2json.so
- elif [ -f "/usr/local/lib/postgresql/wal2json.so" ]; then
-
-
- echo "Cannot download latest version. Found a version on disk"
- else
- echo "wal2json is not installed and cannot download latest version"
- exit 1
- fi
- set -e
- echo "wal2json installed"
- }
- echo "Setting up Change Data Capture"
- if [ "$1" = 'postgres' ]; then
- cdc_setup_hba_conf
- install_wal2json
- fi
- exec /docker-entrypoint.sh "$@"
|