#!/bin/sh set -e # Shell script to update npm in the source tree to a specific version BASE_DIR="$( pwd )"/ DEPS_DIR="$BASE_DIR"deps/ NPM_VERSION=$1 if [ "$#" -le 0 ]; then echo "Error: please provide an npm version to update to" exit 1 fi echo "Making temporary workspace" WORKSPACE=$(mktemp -d 2> /dev/null || mktemp -d -t 'tmp') cleanup () { EXIT_CODE=$? [ -d "$WORKSPACE" ] && rm -rf "$WORKSPACE" exit $EXIT_CODE } trap cleanup INT TERM EXIT cd "$WORKSPACE" git clone --depth=1 --branch="v$NPM_VERSION" git@github.com:npm/cli.git cd cli echo "Preparing npm release" make make release echo "Removing old npm" cd "$DEPS_DIR" rm -rf npm/ echo "Copying new npm" tar zxf "$WORKSPACE"/cli/release/npm-"$NPM_VERSION".tgz echo "" echo "All done!" echo "" echo "Please git add npm, commit the new version, and whitespace-fix:" echo "" echo "$ git add -A deps/npm" echo "$ git commit -m \"deps: upgrade npm to $NPM_VERSION\"" echo "$ git rebase --whitespace=fix main" echo ""