summaryrefslogtreecommitdiff
path: root/tools/update-eslint.sh
blob: d0320ab8f841d45cfe791d4118eb7ccce17f30c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/sh

# Shell script to update ESLint in the source tree to the latest release.

# Depends on npm, npx, and node being in $PATH.

# This script must be be in the tools directory when it runs because it uses
# $BASH_SOURCE[0] to determine directories to work in.

cd "$( dirname "$0" )" || exit
rm -rf node_modules/eslint
(
    mkdir eslint-tmp
    cd eslint-tmp || exit
    npm init --yes

    npm install --global-style --no-bin-links --production --no-package-lock eslint@latest

    (
        cd node_modules/eslint || exit

        npm install --no-bin-links --production --no-package-lock eslint-plugin-markdown@latest
    )


    # Use dmn to remove some unneeded files.
    npx dmn@2.2.2 -f clean
    # Use removeNPMAbsolutePaths to remove unused data in package.json.
    # This avoids churn as absolute paths can change from one dev to another.
    npx removeNPMAbsolutePaths@1.0.4 .
)

mv eslint-tmp/node_modules/eslint node_modules/eslint
rm -rf eslint-tmp/