46 lines
1.1 KiB
Bash
Executable File
46 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
SQLITE_DB_PATH="${SQLITE_DB_PATH:-$ROOT_DIR/examples/tmp/dbtool-demo.sqlite}"
|
|
SQL_FILE="$ROOT_DIR/examples/fixtures/sqlite/init.sql"
|
|
|
|
mkdir -p "$(dirname "$SQLITE_DB_PATH")"
|
|
|
|
if command -v sqlite3 >/dev/null 2>&1; then
|
|
sqlite3 "$SQLITE_DB_PATH" < "$SQL_FILE"
|
|
elif command -v node >/dev/null 2>&1; then
|
|
node --no-warnings - "$SQLITE_DB_PATH" "$SQL_FILE" <<'JS'
|
|
const { DatabaseSync } = require('node:sqlite');
|
|
const fs = require('fs');
|
|
|
|
const dbPath = process.argv[2];
|
|
const sqlPath = process.argv[3];
|
|
|
|
const db = new DatabaseSync(dbPath);
|
|
try {
|
|
db.exec(fs.readFileSync(sqlPath, 'utf8'));
|
|
} finally {
|
|
db.close();
|
|
}
|
|
JS
|
|
else
|
|
python3 - "$SQLITE_DB_PATH" "$SQL_FILE" <<'PY'
|
|
import pathlib
|
|
import sqlite3
|
|
import sys
|
|
|
|
db_path = pathlib.Path(sys.argv[1])
|
|
sql_path = pathlib.Path(sys.argv[2])
|
|
|
|
conn = sqlite3.connect(db_path)
|
|
try:
|
|
conn.executescript(sql_path.read_text(encoding="utf-8"))
|
|
conn.commit()
|
|
finally:
|
|
conn.close()
|
|
PY
|
|
fi
|
|
|
|
echo "SQLite demo data seeded into $SQLITE_DB_PATH."
|