#!/bin/sh

set -e
set -u

die() {
    echo "$@" >&2
    exit 1
}

SUPPORTED_VERSIONS="4.0 3.0"

CMD=$(basename "$0")

VER=${FIREBIRD_VERSION:-}

if [ -z "$VER" ]; then
    for v in $SUPPORTED_VERSIONS; do
        if [ -x "/usr/lib/firebird/$v/bin/$CMD" ]; then
            VER=$v
            break
        fi
    done
fi

if [ $# -ge 2 ]; then
    if [ "$1" = "--fb-ver" ]; then
        VER="$2";
        shift 2
    fi
fi

[ -n "$VER" ] || die "No default version available and no --fb-ver given"

CMD_PATH="/usr/lib/firebird/$VER/bin/$CMD"

[ -x "$CMD_PATH" ] || die "$CMD_PATH not available"

LIB_DIR=$(ldd "$CMD_PATH" | grep libfbclient | head -1 | sed 's,.* => ,,; s,/libfbclient.*,,' )

LIB_DIR=$(realpath "$LIB_DIR")

[ -d "$LIB_DIR/firebird/$VER" ] || die "No firebird root found at '$LIB_DIR'"

FIREBIRD_VERSION=$VER FIREBIRD="$LIB_DIR/firebird/$VER" exec "$CMD_PATH" "$@"
