25 lines
633 B
Bash
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
|