Skip to content

Commit ade35fa

Browse files
committed
fix(scripts): use direct-run helper for Windows guards
1 parent 0ac7b24 commit ade35fa

8 files changed

Lines changed: 46 additions & 7 deletions

scripts/android-app-i18n.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { readdir, readFile, writeFile } from "node:fs/promises";
33
import path from "node:path";
44
import { fileURLToPath } from "node:url";
55
import { expectDefined } from "../packages/normalization-core/src/expect.js";
6+
import { isDirectRunUrl } from "./lib/direct-run.mjs";
67
import { NATIVE_I18N_LOCALES } from "./native-i18n-locales.ts";
78

89
const HERE = path.dirname(fileURLToPath(import.meta.url));
@@ -1336,7 +1337,7 @@ export async function checkAndroidAppI18n() {
13361337
);
13371338
}
13381339

1339-
if (process.argv[1] && import.meta.url === `file://${path.resolve(process.argv[1])}`) {
1340+
if (isDirectRunUrl(process.argv[1], import.meta.url)) {
13401341
const [command] = process.argv.slice(2);
13411342
if (command === "sync") {
13421343
await syncAndroidAppI18n();

scripts/android-pin-version.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
syncAndroidVersioning,
1010
writeAndroidVersionManifest,
1111
} from "./lib/android-version.ts";
12+
import { isDirectRunUrl } from "./lib/direct-run.mjs";
1213

1314
type CliOptions = {
1415
explicitVersion: string | null;
@@ -194,7 +195,7 @@ export async function main(argv: string[]): Promise<number> {
194195
}
195196
}
196197

197-
if (import.meta.url === `file://${process.argv[1]}`) {
198+
if (isDirectRunUrl(process.argv[1], import.meta.url)) {
198199
const exitCode = await main(process.argv.slice(2));
199200
if (exitCode !== 0) {
200201
process.exit(exitCode);

scripts/ci-run-timings.mjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
// Summarizes GitHub Actions run/job timings for CI analysis.
44
import { execFileSync } from "node:child_process";
5+
import { isDirectRunUrl } from "./lib/direct-run.mjs";
56
import { parsePositiveInt } from "./lib/numeric-options.mjs";
67
import { execPlainGh } from "./lib/plain-gh.mjs";
78

@@ -503,6 +504,6 @@ async function main() {
503504
}
504505
}
505506

506-
if (import.meta.url === `file://${process.argv[1]}`) {
507+
if (isDirectRunUrl(process.argv[1], import.meta.url)) {
507508
await main();
508509
}

scripts/e2e/lib/package-compat.mjs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
// Package-version compatibility helpers for E2E acceptance scripts.
2+
import { isDirectRunUrl } from "../../lib/direct-run.mjs";
3+
24
export function legacyPackageAcceptanceCompat(version) {
35
const match = /^(\d{4})\.(\d{1,2})\.(\d{1,2})(?:[-+].*)?/.exec(version || "");
46
const [year, month, day] = match?.slice(1, 4).map(Number) ?? [];
@@ -7,6 +9,6 @@ export function legacyPackageAcceptanceCompat(version) {
79
);
810
}
911

10-
if (import.meta.url === `file://${process.argv[1]}`) {
12+
if (isDirectRunUrl(process.argv[1], import.meta.url)) {
1113
console.log(legacyPackageAcceptanceCompat(process.argv[2]) ? "1" : "0");
1214
}

scripts/plan-release-workflow-matrix.mjs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
// Plans release workflow matrix entries from profile and suite inputs.
2+
import { isDirectRunUrl } from "./lib/direct-run.mjs";
3+
24
const DOCKER_E2E_CHUNKS = [
35
{
46
chunk_id: "core",
@@ -237,7 +239,7 @@ function writeOutputs(plan) {
237239
}
238240
}
239241

240-
if (import.meta.url === `file://${process.argv[1]}`) {
242+
if (isDirectRunUrl(process.argv[1], import.meta.url)) {
241243
const plan = createReleaseWorkflowMatrixPlan({
242244
dockerLanes: process.env.DOCKER_LANES,
243245
includeLiveSuites: process.env.INCLUDE_LIVE_SUITES,

scripts/run-additional-boundary-checks.mjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { spawn } from "node:child_process";
55
import { performance } from "node:perf_hooks";
66
import pMap from "p-map";
77
import prettyMilliseconds from "pretty-ms";
8+
import { isDirectRunUrl } from "./lib/direct-run.mjs";
89

910
const DEFAULT_CHECK_TIMEOUT_MS = 10 * 60 * 1000;
1011
const DEFAULT_OUTPUT_MAX_BYTES = 512 * 1024;
@@ -584,7 +585,7 @@ export function parseCliArgs(args, env = process.env) {
584585
return { help, shardSpec };
585586
}
586587

587-
if (import.meta.url === `file://${process.argv[1]}`) {
588+
if (isDirectRunUrl(process.argv[1], import.meta.url)) {
588589
try {
589590
const cliArgs = parseCliArgs(process.argv.slice(2), process.env);
590591
if (cliArgs.help) {

scripts/verify-docker-attestations.mjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// Verifies Docker image attestations cover required platforms and predicates.
44
import { execFileSync } from "node:child_process";
55
import process from "node:process";
6+
import { isDirectRunUrl } from "./lib/direct-run.mjs";
67

78
const ATTESTATION_REFERENCE_TYPE = "attestation-manifest";
89
const EXPECTED_ATTESTATION_ARTIFACT_TYPE = "application/vnd.docker.attestation.manifest.v1+json";
@@ -216,7 +217,7 @@ async function main() {
216217
}
217218
}
218219

219-
if (import.meta.url === `file://${process.argv[1]}`) {
220+
if (isDirectRunUrl(process.argv[1], import.meta.url)) {
220221
main().catch(
221222
/** @param {unknown} error */ (error) => {
222223
console.error(error instanceof Error ? error.message : String(error));
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { spawnSync } from "node:child_process";
2+
import path from "node:path";
3+
import { describe, expect, it } from "vitest";
4+
5+
const repoRoot = process.cwd();
6+
7+
function runTsScriptHelp(scriptPath: string) {
8+
return spawnSync(process.execPath, ["--import", "tsx", scriptPath, "--help"], {
9+
cwd: repoRoot,
10+
encoding: "utf8",
11+
});
12+
}
13+
14+
describe("Android script direct-run guards", () => {
15+
it("runs android-pin-version help through the script entrypoint", () => {
16+
const result = runTsScriptHelp(path.join("scripts", "android-pin-version.ts"));
17+
18+
expect(result.status).toBe(0);
19+
expect(result.stderr).toBe("");
20+
expect(result.stdout).toContain("Usage: node --import tsx scripts/android-pin-version.ts");
21+
});
22+
23+
it("runs android-app-i18n help through the script entrypoint", () => {
24+
const result = runTsScriptHelp(path.join("scripts", "android-app-i18n.ts"));
25+
26+
expect(`${result.stdout}${result.stderr}`).toContain(
27+
"usage: node --import tsx scripts/android-app-i18n.ts <sync|check>",
28+
);
29+
});
30+
});

0 commit comments

Comments
 (0)