chore: bootstrap independent git workflow
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
45
examples/scripts/bootstrap-sqlite.sh
Executable file
45
examples/scripts/bootstrap-sqlite.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/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."
|
||||
Reference in New Issue
Block a user