#!/bin/sh # Shell script to update ESLint in the source tree to the latest release. # This script must be in the tools directory when it runs because it uses the # script source file path to determine directories to work in. set -ex cd "$( dirname "$0" )" || exit rm -rf node_modules/eslint ( rm -rf eslint-tmp mkdir eslint-tmp cd eslint-tmp || exit ROOT="$PWD/../.." [ -z "$NODE" ] && NODE="$ROOT/out/Release/node" [ -x "$NODE" ] || NODE=$(command -v node) NPM="$ROOT/deps/npm/bin/npm-cli.js" "$NODE" "$NPM" init --yes "$NODE" "$NPM" install --global-style --no-bin-links --ignore-scripts eslint # Uninstall plugins that we want to install so that they are removed from devDependencies. # Otherwise --production will cause them to be skipped. (cd node_modules/eslint && "$NODE" "$NPM" uninstall --ignore-scripts eslint-plugin-jsdoc eslint-plugin-markdown @babel/core @babel/eslint-parser @babel/plugin-syntax-import-assertions) (cd node_modules/eslint && "$NODE" "$NPM" install --no-save --no-bin-links --ignore-scripts --production --omit=peer eslint-plugin-jsdoc eslint-plugin-markdown @babel/core @babel/eslint-parser @babel/plugin-syntax-import-assertions) # Use dmn to remove some unneeded files. "$NODE" "$NPM" exec -- dmn@2.2.2 -f clean # TODO: Get this into dmn. find node_modules -name .package-lock.json -exec rm {} \; find node_modules -name 'README*' -exec rm {} \; ) mv eslint-tmp/node_modules/eslint node_modules/eslint rm -rf eslint-tmp/