mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-26 11:14:08 +00:00
72 lines
1.5 KiB
Bash
Executable File
72 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# 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=(
|
|
# This is a tool to check if your files consider your .editorconfig rules.
|
|
"editorconfig-checker"
|
|
# Node module to create a release or a changelog from
|
|
# a tag and uses issues or commits to creating the release notes.
|
|
"github-release-notes"
|
|
"neovim"
|
|
"corepack"
|
|
)
|
|
|
|
# Function to install npm packages
|
|
install_packages()
|
|
{
|
|
for pkg in "${packages[@]}"; do
|
|
# Trim spaces
|
|
pkg=${pkg// /}
|
|
# Skip comments
|
|
if [[ ${pkg:0:1} == "#" ]]; then continue; fi
|
|
|
|
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 "$@"
|