Files
nvim-config/scripts/restore-mason.sh
T
2026-10-13 16:31:02 +08:00

25 lines
633 B
Bash

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