From ecf0330bbe324931c3918cb4e6354ecf38cc06ef Mon Sep 17 00:00:00 2001 From: Marco Ippolito Date: Mon, 30 Oct 2023 09:16:39 +0100 Subject: [PATCH] tools: avoid npm install in deps installation PR-URL: https://github.com/nodejs/node/pull/50413 Refs: https://github.com/nodejs/node/pull/49747 Reviewed-By: Yagiz Nizipli Reviewed-By: Luigi Pinca Reviewed-By: James M Snell --- tools/dep_updaters/update-acorn-walk.sh | 45 +++++++++++++++++-------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/tools/dep_updaters/update-acorn-walk.sh b/tools/dep_updaters/update-acorn-walk.sh index ea49a1ec5ad3e7..33aa76abe24070 100755 --- a/tools/dep_updaters/update-acorn-walk.sh +++ b/tools/dep_updaters/update-acorn-walk.sh @@ -7,13 +7,14 @@ set -ex -ROOT=$(cd "$(dirname "$0")/../.." && pwd) -[ -z "$NODE" ] && NODE="$ROOT/out/Release/node" +BASE_DIR=$(cd "$(dirname "$0")/../.." && pwd) +[ -z "$NODE" ] && NODE="$BASE_DIR/out/Release/node" [ -x "$NODE" ] || NODE=$(command -v node) -NPM="$ROOT/deps/npm/bin/npm-cli.js" +NPM="$BASE_DIR/deps/npm/bin/npm-cli.js" +DEPS_DIR="$BASE_DIR/deps" # shellcheck disable=SC1091 -. "$ROOT/tools/dep_updaters/utils.sh" +. "$BASE_DIR/tools/dep_updaters/utils.sh" NEW_VERSION=$("$NODE" "$NPM" view acorn-walk dist-tags.latest) CURRENT_VERSION=$("$NODE" -p "require('./deps/acorn/acorn-walk/package.json').version") @@ -23,21 +24,37 @@ compare_dependency_version "acorn-walk" "$NEW_VERSION" "$CURRENT_VERSION" cd "$( dirname "$0" )/../.." || exit -rm -rf deps/acorn/acorn-walk +echo "Making temporary workspace..." -( - rm -rf acorn-walk-tmp - mkdir acorn-walk-tmp - cd acorn-walk-tmp || exit +WORKSPACE=$(mktemp -d 2> /dev/null || mktemp -d -t 'tmp') - "$NODE" "$NPM" init --yes +cleanup () { + EXIT_CODE=$? + [ -d "$WORKSPACE" ] && rm -rf "$WORKSPACE" + exit $EXIT_CODE +} - "$NODE" "$NPM" install --global-style --no-bin-links --ignore-scripts "acorn-walk@$NEW_VERSION" -) +trap cleanup INT TERM EXIT -mv acorn-walk-tmp/node_modules/acorn-walk deps/acorn +cd "$WORKSPACE" -rm -rf acorn-walk-tmp/ +echo "Fetching acorn-walk source archive..." + +DIST_URL=$(curl -sL "https://registry.npmjs.org/acorn-walk/$NEW_VERSION" | perl -n -e '/"dist".*?"tarball":"(.*?)"/ && print $1') + +ACORN_WALK_TGZ="acorn-walk.tgz" + +curl -sL -o "$ACORN_WALK_TGZ" "$DIST_URL" + +log_and_verify_sha256sum "acorn-walk" "$ACORN_WALK_TGZ" + +rm -r "$DEPS_DIR/acorn/acorn-walk"/* + +tar -xf "$ACORN_WALK_TGZ" + +mv "$WORKSPACE/package"/* "$DEPS_DIR/acorn/acorn-walk" + +rm "$ACORN_WALK_TGZ" echo "All done!" echo ""