Jack Franklin | b5a6309 | 2022-11-30 14:32:36 | [diff] [blame] | 1 | #!/usr/bin/env node |
| 2 | |
| 3 | // Copyright 2022 The Chromium Authors. All rights reserved. |
| 4 | // Use of this source code is governed by a BSD-style license that can be |
| 5 | // found in the LICENSE file. |
| 6 | 'use strict'; |
| 7 | |
| 8 | const path = require('path'); |
| 9 | const fs = require('fs'); |
| 10 | |
| 11 | const { |
| 12 | devtoolsRootPath, |
| 13 | } = require('./devtools_paths.js'); |
| 14 | |
| 15 | function bail(message) { |
| 16 | console.error(message); |
| 17 | process.exit(1); |
| 18 | } |
| 19 | |
| 20 | function findVersionFromDepsFile() { |
| 21 | const filePath = path.join(devtoolsRootPath(), 'DEPS'); |
| 22 | const contents = fs.readFileSync(filePath, 'utf8').split('\n'); |
| 23 | const esbuildPackageLine = contents.findIndex(line => line.match(/infra\/3pp\/tools\/esbuild/)); |
| 24 | if (esbuildPackageLine === -1) { |
| 25 | bail('Could not find ESBuild within DEPS file.'); |
| 26 | } |
| 27 | const esbuildVersionLine = contents[esbuildPackageLine + 1]; |
| 28 | const result = /@(\d{1,2}\.\d{1,2}\.\d{1,2})/.exec(esbuildVersionLine)?.[1]; |
| 29 | if (!result) { |
| 30 | bail('Could not parse out ESBuild version from DEPS'); |
| 31 | } |
| 32 | return result; |
| 33 | } |
| 34 | |
| 35 | function findVersionFromNodeDepsFile() { |
| 36 | const filePath = path.join(devtoolsRootPath(), 'scripts', 'deps', 'manage_node_deps.py'); |
| 37 | const contents = fs.readFileSync(filePath, 'utf8'); |
| 38 | const result = /"esbuild": "([0-9\.]+)"/.exec(contents)?.[1]; |
| 39 | if (!result) { |
| 40 | bail('Could not parse out ESBuild version from manage_node_deps.py'); |
| 41 | } |
| 42 | return result; |
| 43 | } |
| 44 | |
| 45 | const nodeDepsVersion = findVersionFromNodeDepsFile(); |
| 46 | const depsVersion = findVersionFromDepsFile(); |
| 47 | if (nodeDepsVersion !== depsVersion) { |
| 48 | bail(`Found mismatching esbuild versions in DEPS vs manage_node_deps: |
| 49 | manage_node_deps.py: ${nodeDepsVersion} |
| 50 | DEPS: ${depsVersion}\n`); |
| 51 | } |