Dotfiles/setup/modules/optional-Modules/apps/db-clients.sh

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."