#!/usr/bin/env bash set -euo pipefail config_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd) packages=() while IFS= read -r package || [[ -n $package ]]; do [[ -z $package || $package == \#* ]] && continue if [[ ! $package =~ ^[a-zA-Z0-9_-]+$ ]]; then printf 'Invalid Mason package name: %s\n' "$package" >&2 exit 1 fi packages+=("$package") done < "$config_dir/mason-packages.txt" if ((${#packages[@]} == 0)); then printf 'No Mason packages listed.\n' >&2 exit 1 fi nvim --headless \ -c 'lua require("lazy").load({ plugins = { "mason.nvim" } })' \ -c "MasonInstall ${packages[*]}" \ -c qall