mirror of
https://github.com/cita-777/metapi.git
synced 2026-10-31 19:47:31 +08:00
24 lines
920 B
Bash
24 lines
920 B
Bash
#!/usr/bin/env sh
|
|
set -eu
|
|
|
|
# Check whether better-sqlite3 matches the current Node.js ABI.
|
|
set +e
|
|
node -e "try{require('better-sqlite3');process.exit(0);}catch(err){if(err&&err.code==='ERR_DLOPEN_FAILED'&&String(err.message||'').includes('NODE_MODULE_VERSION')){process.exit(42);}console.error(err);process.exit(1);}"
|
|
native_check_code=$?
|
|
set -e
|
|
|
|
if [ "$native_check_code" -eq 42 ]; then
|
|
echo "[metapi] Detected Node.js/native module ABI mismatch. Rebuilding better-sqlite3..."
|
|
if ! npm rebuild better-sqlite3 --no-audit --fund=false; then
|
|
echo "[metapi] npm rebuild failed. Running npm ci --omit=dev as fallback..."
|
|
npm ci --omit=dev --no-audit --fund=false
|
|
fi
|
|
|
|
node -e "try{require('better-sqlite3');process.exit(0);}catch(err){console.error(err);process.exit(1);}"
|
|
elif [ "$native_check_code" -ne 0 ]; then
|
|
exit "$native_check_code"
|
|
fi
|
|
|
|
node dist/server/db/migrate.js
|
|
exec node dist/server/index.js
|