mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-02-04 13:49:07 +00:00
69 lines
1.5 KiB
Bash
Executable File
69 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# @description Install npm packages globally.
|
|
#
|
|
# shellcheck source=shared.sh
|
|
source "$DOTFILES/config/shared.sh"
|
|
|
|
# Enable verbosity with VERBOSE=1
|
|
VERBOSE="${VERBOSE:-0}"
|
|
|
|
msgr msg "Starting to install npm packages"
|
|
|
|
if ! command -v npm &> /dev/null; then
|
|
msgr err "npm could not be found."
|
|
exit 0
|
|
fi
|
|
|
|
packages=(
|
|
editorconfig-checker # Check files against .editorconfig rules
|
|
github-release-notes # Create release notes from tags and issues
|
|
neovim # Neovim node client
|
|
corepack # Node.js package manager version management
|
|
)
|
|
|
|
# Function to install npm packages
|
|
install_packages()
|
|
{
|
|
for pkg in "${packages[@]}"; do
|
|
# Strip inline comments and trim whitespace
|
|
pkg="${pkg%%#*}"
|
|
pkg="${pkg// /}"
|
|
[[ -z "$pkg" ]] && continue
|
|
|
|
if npm ls -g -p "$pkg" &> /dev/null; then
|
|
msgr run_done "$pkg" "already installed"
|
|
else
|
|
msgr run "Installing npm package:" "$pkg"
|
|
npm install -g --no-fund --no-progress --no-timing "$pkg"
|
|
fi
|
|
echo ""
|
|
done
|
|
}
|
|
|
|
# Function to upgrade all global npm packages
|
|
upgrade_global_packages()
|
|
{
|
|
msgr run "Upgrading all global packages"
|
|
npm -g --no-progress --no-timing --no-fund outdated
|
|
npm -g --no-timing --no-fund upgrade
|
|
}
|
|
|
|
# Function to clean npm cache
|
|
clean_npm_cache()
|
|
{
|
|
msgr run "Cleaning up npm cache"
|
|
npm cache verify
|
|
npm cache clean --force
|
|
npm cache verify
|
|
}
|
|
|
|
main()
|
|
{
|
|
install_packages
|
|
upgrade_global_packages
|
|
clean_npm_cache
|
|
msgr yay "npm package installations complete"
|
|
}
|
|
|
|
main "$@"
|