From 4db71719384f45a24cdbaf14f8eea4cddd8fb5ce Mon Sep 17 00:00:00 2001 From: pallyoung Date: Mon, 17 Aug 2026 12:03:38 +0800 Subject: [PATCH] fix(ci): accept pnpm argument separator --- scripts/force-desktop-full-download.test.ts | 14 +++++++++++++- scripts/force-desktop-full-download.ts | 11 +++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/scripts/force-desktop-full-download.test.ts b/scripts/force-desktop-full-download.test.ts index ccd885d7..f30d40c3 100644 --- a/scripts/force-desktop-full-download.test.ts +++ b/scripts/force-desktop-full-download.test.ts @@ -3,7 +3,10 @@ import { tmpdir } from "node:os"; import { join } from "node:path"; import { gunzipSync, gzipSync } from "node:zlib"; import { afterEach, describe, expect, it } from "vitest"; -import { forceDesktopFullDownload } from "./force-desktop-full-download.js"; +import { + forceDesktopFullDownload, + parseForceFullDownloadDirectory, +} from "./force-desktop-full-download.js"; const roots: string[] = []; @@ -29,6 +32,15 @@ afterEach(async () => { }); describe("force-desktop-full-download", () => { + it("accepts pnpm's optional argument separator", () => { + expect(parseForceFullDownloadDirectory(["--directory", "release/desktop"])).toBe( + "release/desktop" + ); + expect(parseForceFullDownloadDirectory(["--", "--directory", "release/desktop"])).toBe( + "release/desktop" + ); + }); + it("marks the target blockmap as incompatible so legacy clients fall back to the full installer", async () => { const fixture = await createFixture(); diff --git a/scripts/force-desktop-full-download.ts b/scripts/force-desktop-full-download.ts index 3b540c57..4eb470da 100644 --- a/scripts/force-desktop-full-download.ts +++ b/scripts/force-desktop-full-download.ts @@ -98,15 +98,18 @@ export async function forceDesktopFullDownload( return { blockmapPath, originalVersion, forcedVersion, changed: true }; } -function parseDirectory(argv: string[]): string { - if (argv.length !== 2 || argv[0] !== "--directory" || !argv[1]) { +export function parseForceFullDownloadDirectory(argv: string[]): string { + const args = argv[0] === "--" ? argv.slice(1) : argv; + if (args.length !== 2 || args[0] !== "--directory" || !args[1]) { throw new Error("Usage: force-desktop-full-download --directory "); } - return argv[1]; + return args[1]; } async function main(): Promise { - const result = await forceDesktopFullDownload(parseDirectory(process.argv.slice(2))); + const result = await forceDesktopFullDownload( + parseForceFullDownloadDirectory(process.argv.slice(2)) + ); success( `${result.changed ? "Marked" : "Verified"} Desktop blockmap for full installer download: ${result.blockmapPath}` );