dotfiles/bin/npm-update

35 lines
789 B
Bash
Executable File

#!/bin/bash
# Upgrade npm package (dev)dependencies to the latest versions and update package.json
#
# Require:
# - jq - brew install jq
command -v jq >/dev/null 2>&1 || { echo >&2 "jq not installed: see comments for instructions."; exit 1; }
# Common stuff
RED="$(tput setaf 1)"
CYAN="$(tput setaf 6)"
UNDERLINE="$(tput sgr 0 1)"
NOCOLOR="$(tput sgr0)"
function header() { echo -e "$UNDERLINE$CYAN$1$NOCOLOR\n"; }
function error() { echo -e "$UNDERLINE$RED$1$NOCOLOR"; }
if [ ! -f package.json ]; then
error "package.json not found"
exit 1
fi
update() {
header "Upgrading $1..."
for package in $(cat package.json | jq -r ".$1 | keys | .[]" 2>/dev/null); do
npm install --$2 $package
done
}
update dependencies save
update devDependencies save-dev
git diff -U0 package.json