#!/bin/bash # Прогон процедур обмена M2M на встроенном Firebird 2.5.9 (Classic, без службы и сетевого порта). # Заглушки Fancy (stub_fancy.sql) — колонки таблиц по схеме Fancy MSSQL и упрощённые FU_NEXT_DOC_NUM / OD_PR_INS_WIRS. # Использование: deploy/depo/fancy-m2m-firebird/test/run.sh [рабочий каталог, по умолчанию /tmp/bj-fb25] set -euo pipefail D=$(cd "$(dirname "$0")/.." && pwd) W=${1:-/tmp/bj-fb25} mkdir -p "$W" if [ ! -x "$W/fb/opt/firebird/bin/isql" ]; then curl -fsSL -o "$W/fbcs.tar.gz" https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/FirebirdCS-2.5.9.27139-0.amd64.tar.gz mkdir -p "$W/dl" "$W/fb" "$W/emb" "$W/lock" tar -xzf "$W/fbcs.tar.gz" -C "$W/dl" tar -xzf "$W"/dl/*/buildroot.tar.gz -C "$W/fb" F="$W/fb/opt/firebird" ln -sf "$(ls /usr/lib/x86_64-linux-gnu/libncurses.so.6* | head -1)" "$F/lib/libncurses.so.5" ln -sf "$(ls /usr/lib/x86_64-linux-gnu/libtinfo.so.6* | head -1)" "$F/lib/libtinfo.so.5" ln -sf "$F/lib/libfbembed.so.2.5" "$W/emb/libfbclient.so.2" fi export ISC_USER=SYSDBA ISC_PASSWORD=masterkey # встроенный режим: пароль не проверяется export FIREBIRD="$W/fb/opt/firebird" FIREBIRD_LOCK="$W/lock" LD_LIBRARY_PATH="$W/emb:$W/fb/opt/firebird/lib" ISQL="$FIREBIRD/bin/isql" rm -f "$W/t.fdb" printf "CREATE DATABASE '%s/t.fdb' DEFAULT CHARACTER SET WIN1251;\nCOMMIT;\n" "$W" > "$W/c.sql" "$ISQL" -q -i "$W/c.sql" "$W/g.sql" for f in "$D/test/stub_fancy.sql" "$D/00_FTV_M2M_TABLES.sql" "$D/10_FTV_M2M_PROCS.sql" "$W/g.sql" "$D/test/smoke.sql"; do echo "== $(basename "$f")" "$ISQL" -q -ch UTF8 -i "$f" "$W/t.fdb" &1 | sed -E 's/ {3,}/ /g' | { grep -v '^$' || true; } done