40 lines
1.9 KiB
Bash
Executable File
40 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# ============================================================
|
|
# db-clients.sh — CLI database clients (pgcli, mycli)
|
|
# ============================================================
|
|
# Installs interactive, feature-rich CLI clients for the two
|
|
# most common open-source relational databases:
|
|
#
|
|
# pgcli — PostgreSQL client with syntax highlighting, auto-
|
|
# completion, and multi-line editing (official repos)
|
|
# mycli — MySQL / MariaDB client with the same UX improvements
|
|
# (AUR only, as the upstream package is not in the
|
|
# official Arch repos)
|
|
#
|
|
# Both tools are built on Python's prompt-toolkit library and
|
|
# offer a significantly better interactive experience than the
|
|
# stock `psql` and `mysql` CLIs.
|
|
#
|
|
# This is an optional module because database clients are only
|
|
# needed on machines used for database development or
|
|
# administration.
|
|
# ============================================================
|
|
|
|
set -euo pipefail
|
|
# Load shared logging helpers from the dotfiles lib
|
|
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
|
|
|
# ── pgcli (official repos) ────────────────────────────────────────────────────
|
|
# pgcli: PostgreSQL client with auto-complete, syntax highlighting, and
|
|
# multi-line query editing. It also shows the query explain plan inline.
|
|
log "Installing pgcli..."
|
|
sudo pacman -S --noconfirm --needed pgcli
|
|
|
|
# ── mycli (AUR) ──────────────────────────────────────────────────────────────
|
|
# mycli: MySQL / MariaDB CLI with identical UX improvements to pgcli.
|
|
# Available from AUR only because it is not packaged in the official repos.
|
|
log "Installing mycli (AUR)..."
|
|
yay -S --answerdiff None --answerclean All --noconfirm mycli
|
|
|
|
log "DB clients installed."
|