| /* | |
| * Licensed to the Apache Software Foundation (ASF) under one | |
| * or more contributor license agreements. See the NOTICE file | |
| * distributed with this work for additional information | |
| * regarding copyright ownership. The ASF licenses this file | |
| * to you under the Apache License, Version 2.0 (the | |
| * "License"); you may not use this file except in compliance | |
| * with the License. You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, | |
| * software distributed under the License is distributed on an | |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| * KIND, either express or implied. See the License for the | |
| * specific language governing permissions and limitations | |
| * under the License. | |
| */ | |
| import { execFileSync } from 'node:child_process'; | |
| import { readFileSync, writeFileSync } from 'node:fs'; | |
| import { dirname, join } from 'node:path'; | |
| import { fileURLToPath } from 'node:url'; | |
| const repoRoot = dirname(dirname(fileURLToPath(import.meta.url))); | |
| const manifestPath = join(repoRoot, 'native/runtime-host-peer/Cargo.toml'); | |
| const cargo = process.env.CARGO ?? 'cargo'; | |
| const output = execFileSync( | |
| cargo, | |
| [ | |
| 'deny', | |
| '--manifest-path', | |
| manifestPath, | |
| '--locked', | |
| '--exclude-dev', | |
| 'list', | |
| '-f', | |
| 'tsv', | |
| '-t', | |
| '0.6', | |
| ], | |
| { cwd: repoRoot, encoding: 'utf8', maxBuffer: 64 * 1024 * 1024 }, | |
| ); | |
| const outputPath = join(repoRoot, 'packages/cli/RUNTIME_HOST_PEER_DEPENDENCIES.rust.tsv'); | |
| if (process.argv.includes('--check')) { | |
| if (readFileSync(outputPath, 'utf8') !== output) { | |
| throw new Error( | |
| 'Runtime Host peer dependency inventory is stale. Run npm run generate:runtime-host-peer-dependencies.', | |
| ); | |
| } | |
| } else { | |
| writeFileSync(outputPath, output); | |
| } |