#!/bin/bash # set -euo pipefail: abort on errors, unset vars, and pipeline failures. set -euo pipefail # Path climbs one level (/../) because this optional module lives in a # subdirectory; logging.sh is in modules/lib/ relative to modules/. source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh" # Install the Python ecosystem needed for neovim LSP support and scripting: # python — base interpreter (3.x) # pyright — Microsoft's Python LSP; used by nvim-lspconfig # python-pynvim — Python client library that lets neovim plugins call Python RPCs # python-pipx — tool to install Python apps in isolated venvs (replaces pipsi) # --noconfirm keeps the install non-interactive (required for unattended/answerfile # deployment); --needed skips packages already present so re-runs are idempotent. log "Installing Python tools..." sudo pacman -Syu --noconfirm --needed python pyright python-pynvim python-pipx log "Python tools installed."