Dotfiles/setup/modules/optional-Modules/apps/python.sh

18 lines
973 B
Bash
Executable File

#!/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."