From e498dccde5dd2935bd7d84eb94ac03e25735f753 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Sun, 12 Apr 2026 07:36:07 +0100 Subject: [PATCH] Provide sqlite3 console command - Loads extensions - Wraps with rlwrap for convenience --- docs/available-tasks.md | 6 +++++ scripts/dev/sqlite-console | 48 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100755 scripts/dev/sqlite-console diff --git a/docs/available-tasks.md b/docs/available-tasks.md index 12aeb5c4..854b3070 100644 --- a/docs/available-tasks.md +++ b/docs/available-tasks.md @@ -58,6 +58,12 @@ Render README.md with GitHub Flavored Markdown preview Setup the local development environment +## `dev:sqlite-console` + +- **Usage**: `dev:sqlite-console` + +Open an SQLite console to the development database with extensions loaded + ## `dev:update` - **Usage**: `dev:update` diff --git a/scripts/dev/sqlite-console b/scripts/dev/sqlite-console new file mode 100755 index 00000000..dd2393e9 --- /dev/null +++ b/scripts/dev/sqlite-console @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +#MISE description="Open an SQLite console to the development database with extensions loaded" + +set -e + +source "$(git rev-parse --show-toplevel)/scripts/_helpers.sh" + +ensure_working_directory! + +# Detect platform +arch=$(uname -m) +os=$(uname -s) + +case "$os" in + Darwin) + case "$arch" in + x86_64) platform="darwin-amd64" ;; + arm64) platform="darwin-arm64" ;; + esac + ;; + Linux) + case "$arch" in + x86_64) platform="linux-amd64" ;; + aarch64) platform="linux-arm64" ;; + esac + ;; + *) + echo "Unsupported OS: $os" + exit 1 + ;; +esac + +ext_dir="priv/sqlite_extensions/$platform" + +sqlite_cmd="sqlite3" + +if command -v rlwrap &> /dev/null; then + sqlite_cmd="rlwrap sqlite3" +else + echo "Tip: install rlwrap for arrow key and history support" + echo "" +fi + +$sqlite_cmd \ + -cmd ".load $ext_dir/unicode" \ + -cmd ".load $ext_dir/vec0" \ + data/music_library_dev.db