From 4267fa66a28a51c655677ae6c3160ac7b85f1afc Mon Sep 17 00:00:00 2001 From: Chuan-kai Lin Date: Fri, 14 Feb 2025 13:24:19 -0800 Subject: [PATCH] getTarVersion(): add programName parameter This commit changes getTarVersion() so that it receives the name of the tar program from the caller instead of using the hardcoded string "tar". --- src/tar.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/tar.ts b/src/tar.ts index e8418a8a2..9073f58b5 100644 --- a/src/tar.ts +++ b/src/tar.ts @@ -20,8 +20,8 @@ export type TarVersion = { version: string; }; -async function getTarVersion(): Promise { - const tar = await io.which("tar", true); +async function getTarVersion(programName: string): Promise { + const tar = await io.which(programName, true); let stdout = ""; const exitCode = await new ToolRunner(tar, ["--version"], { listeners: { @@ -31,23 +31,23 @@ async function getTarVersion(): Promise { }, }).exec(); if (exitCode !== 0) { - throw new Error("Failed to call tar --version"); + throw new Error(`Failed to call ${programName} --version`); } // Return whether this is GNU tar or BSD tar, and the version number if (stdout.includes("GNU tar")) { const match = stdout.match(/tar \(GNU tar\) ([0-9.]+)/); if (!match || !match[1]) { - throw new Error("Failed to parse output of tar --version."); + throw new Error(`Failed to parse output of ${programName} --version.`); } - return { name: "tar", type: "gnu", version: match[1] }; + return { name: programName, type: "gnu", version: match[1] }; } else if (stdout.includes("bsdtar")) { const match = stdout.match(/bsdtar ([0-9.]+)/); if (!match || !match[1]) { - throw new Error("Failed to parse output of tar --version."); + throw new Error(`Failed to parse output of ${programName} --version.`); } - return { name: "tar", type: "bsd", version: match[1] }; + return { name: programName, type: "bsd", version: match[1] }; } else { throw new Error("Unknown tar version"); } @@ -64,7 +64,7 @@ export async function isZstdAvailable( ): Promise { const foundZstdBinary = await isBinaryAccessible("zstd", logger); try { - const tarVersion = await getTarVersion(); + const tarVersion = await getTarVersion("tar"); const { type, version } = tarVersion; logger.info(`Found ${type} tar version ${version}.`); switch (type) {