#!/bin/bash
#
# called from arb after startup.
# tests if perl code works.
# if not -> signal problem via arb_message.

show_error() {
    local TEXT=$*
    arb_message "${TEXT}"
    false
}

something_wrong_with_perl() {
    if [[ "$OSTYPE" == "darwin"* ]]; then
        show_error "This problem may have been caused by an update of the installed perl version.\n" \
                   "Re-installing arb may fix this problem."
    else
        show_error "To fix arb/perl compatibility you may\n" \
                   "* install a pre-built version that uses your perl version or\n" \
                   "* build arb yourself from source\n" \
                   "  see http://bugs.arb-home.de/wiki/building-arb-from-svn"
    fi

    show_error "Incompatibility detected between installed arb build and perl version:\n" \
               "* arb macro playback will not work and\n" \
               "* other arb perl scripts wont work either."
}

main() {
    if [ -d "${ARBHOME}" ]; then
        # -> ../PERL_SCRIPTS/ARBTOOLS/TESTS/automatic.pl
        local TESTSCRIPT=${ARBHOME}/PERL_SCRIPTS/ARBTOOLS/TESTS/automatic.pl
        if [ -x ${TESTSCRIPT} ]; then
            local TESTCALL="${TESTSCRIPT} -db ${ARBHOME}/demo.arb -client arb"
            ${TESTCALL} || something_wrong_with_perl
        else
            show_error "not executable: '${TESTSCRIPT}'"
        fi
    else
        echo "incorrect value: \$ARBHOME (='${ARBHOME}')"
        false
    fi
}

main
