fix: fix partial options for tar

This commit is contained in:
Amin Yahyaabadi 2025-07-10 07:11:16 -07:00
parent 26bd7cda45
commit 747e9cfe05
35 changed files with 149 additions and 197 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"ninja":"1.12.1","cmake":"3.31.7","task":"3.43.3","powershell":"7.5.1","pip":">=22.2.0","python":">=3.7.9","meson":{"linux":{"ubuntu":{"20":"1.8.1","18":"0.61.4","else":"0.61.4"},"else":"1.8.1"},"else":"1.8.1"},"kcov":{"linux":{"ubuntu":{"22":"42-binary","20":"40-binary","14":"40","else":"42"},"else":"42"},"else":"42"},"doxygen":{"linux":{"archlinux":"1.13.2-2","ubuntu":{"22":"1.14.0","18":"1.10.0","else":"1.10.0"},"else":"1.14.0"},"else":"1.14.0"},"gcc":{"win32":"15.1.0posix-12.0.0-ucrt-r1","else":""},"mingw":{"win32":"15.1.0posix-12.0.0-ucrt-r1","else":""},"gcovr":{"linux":{"ubuntu":{"20":"","18":"5.0","else":"5.0"},"else":""},"else":""},"nala":{"linux":{"ubuntu":{"22":"","21":"legacy","else":"legacy"},"else":""},"else":""},"llvm":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang++":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang-tidy":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clangtidy":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang-format":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clangformat":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"}}
{"ninja":"1.12.1","cmake":"3.31.7","task":"3.43.3","powershell":"7.5.1","pip":">=22.2.0","python":">=3.7.9","meson":{"linux":{"ubuntu":{"20":"1.8.1","18":"0.61.4","else":"0.61.4"},"else":"1.8.1"},"else":"1.8.1"},"kcov":{"linux":{"ubuntu":{"22":"42-binary","20":"40-binary","14":"40","else":"42"},"else":"42"},"else":"42"},"doxygen":{"linux":{"archlinux":"1.13.2-2","ubuntu":{"22":"1.14.0","18":"1.10.0","else":"1.10.0"},"else":"1.14.0"},"else":"1.14.0"},"tar":{"win32":"1.13-1","else":""},"gcc":{"win32":"15.1.0posix-12.0.0-ucrt-r1","else":""},"mingw":{"win32":"15.1.0posix-12.0.0-ucrt-r1","else":""},"gcovr":{"linux":{"ubuntu":{"20":"","18":"5.0","else":"5.0"},"else":""},"else":""},"nala":{"linux":{"ubuntu":{"22":"","21":"legacy","else":"legacy"},"else":""},"else":""},"llvm":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang++":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang-tidy":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clangtidy":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang-format":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clangformat":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"ninja":"1.12.1","cmake":"3.31.7","task":"3.43.3","powershell":"7.5.1","pip":">=22.2.0","python":">=3.7.9","meson":{"linux":{"ubuntu":{"20":"1.8.1","18":"0.61.4","else":"0.61.4"},"else":"1.8.1"},"else":"1.8.1"},"kcov":{"linux":{"ubuntu":{"22":"42-binary","20":"40-binary","14":"40","else":"42"},"else":"42"},"else":"42"},"doxygen":{"linux":{"archlinux":"1.13.2-2","ubuntu":{"22":"1.14.0","18":"1.10.0","else":"1.10.0"},"else":"1.14.0"},"else":"1.14.0"},"gcc":{"win32":"15.1.0posix-12.0.0-ucrt-r1","else":""},"mingw":{"win32":"15.1.0posix-12.0.0-ucrt-r1","else":""},"gcovr":{"linux":{"ubuntu":{"20":"","18":"5.0","else":"5.0"},"else":""},"else":""},"nala":{"linux":{"ubuntu":{"22":"","21":"legacy","else":"legacy"},"else":""},"else":""},"llvm":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang++":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang-tidy":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clangtidy":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang-format":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clangformat":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"}}
{"ninja":"1.12.1","cmake":"3.31.7","task":"3.43.3","powershell":"7.5.1","pip":">=22.2.0","python":">=3.7.9","meson":{"linux":{"ubuntu":{"20":"1.8.1","18":"0.61.4","else":"0.61.4"},"else":"1.8.1"},"else":"1.8.1"},"kcov":{"linux":{"ubuntu":{"22":"42-binary","20":"40-binary","14":"40","else":"42"},"else":"42"},"else":"42"},"doxygen":{"linux":{"archlinux":"1.13.2-2","ubuntu":{"22":"1.14.0","18":"1.10.0","else":"1.10.0"},"else":"1.14.0"},"else":"1.14.0"},"tar":{"win32":"1.13-1","else":""},"gcc":{"win32":"15.1.0posix-12.0.0-ucrt-r1","else":""},"mingw":{"win32":"15.1.0posix-12.0.0-ucrt-r1","else":""},"gcovr":{"linux":{"ubuntu":{"20":"","18":"5.0","else":"5.0"},"else":""},"else":""},"nala":{"linux":{"ubuntu":{"22":"","21":"legacy","else":"legacy"},"else":""},"else":""},"llvm":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang++":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang-tidy":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clangtidy":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clang-format":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"},"clangformat":{"darwin":{"else":{"else":{"x64":"15.0.7","else":"20.1.4"}}},"linux":{"alpine":{"else":{"else":"19.1.7"}},"else":"20.1.6"},"else":"20.1.6"}}

View File

@ -129,6 +129,7 @@
"setup-brew": "workspace:*",
"setup-python": "github:aminya/setup-python#9700887",
"shx": "0.4.0",
"simple-update-notifier": "^2.0.0",
"time-delta": "github:aminya/time-delta#69d91a4",
"timers-browserify": "^2.0.12",
"ts-node": "^10.9.2",
@ -175,7 +176,6 @@
"setup-alpine",
"setup-brew",
"setup-python",
"simple-update-notifier",
"time-delta",
"ubuntu-version",
"untildify-user",

View File

@ -11,6 +11,12 @@ import { qualifiedNeededAptPackage } from "./qualify-install.js"
let binDir: string | undefined
export type SetupOptions = {
version: string
setupDir: string
arch: string
}
export async function setupNala({ version }: Partial<Pick<SetupOptions, "version">> = {}) {
if (!hasAptGet()) {
return undefined
@ -94,7 +100,3 @@ export function bashWithNala(script: string) {
}
return script
}
function isUbuntu() {
throw new Error("Function not implemented.")
}

View File

@ -256,15 +256,6 @@ importers:
simple-update-notifier:
specifier: ^2.0.0
version: 2.0.0
<<<<<<< HEAD
terser:
specifier: ^5.39.0
version: 5.43.1
terser-config-atomic:
specifier: ^1.0.0
version: 1.0.0
=======
>>>>>>> 94f7139d (build: use esbuild for minification)
time-delta:
specifier: github:aminya/time-delta#69d91a4
version: https://codeload.github.com/aminya/time-delta/tar.gz/69d91a4
@ -5828,16 +5819,8 @@ packages:
resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
engines: {node: '>=8'}
<<<<<<< HEAD
terser-config-atomic@1.0.0:
resolution: {integrity: sha512-WlhyFd4+honI08iaMxLg5P1eSg7RknCHzMI+AOwTNtMWkflGRrLHb7enbYmtpirUi05Tdun9wi/TNinNj4mrSg==}
terser@5.43.1:
resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==}
=======
terser@5.39.0:
resolution: {integrity: sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==}
>>>>>>> 94f7139d (build: use esbuild for minification)
engines: {node: '>=10'}
hasBin: true
@ -7511,14 +7494,9 @@ snapshots:
'@jridgewell/source-map@0.3.10':
dependencies:
<<<<<<< HEAD
'@jridgewell/gen-mapping': 0.3.12
'@jridgewell/trace-mapping': 0.3.29
=======
'@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
optional: true
>>>>>>> 94f7139d (build: use esbuild for minification)
'@jridgewell/sourcemap-codec@1.5.0': {}
@ -12545,13 +12523,7 @@ snapshots:
term-size@2.2.1: {}
<<<<<<< HEAD
terser-config-atomic@1.0.0: {}
terser@5.43.1:
=======
terser@5.39.0:
>>>>>>> 94f7139d (build: use esbuild for minification)
dependencies:
'@jridgewell/source-map': 0.3.10
acorn: 8.15.0

View File

@ -1,3 +1,4 @@
import { untildifyUser } from "untildify-user"
import type { InstallationInfo } from "../../utils/setup/setupBin.js"
import { testBin } from "../../utils/tests/test-helpers.js"
import { setupTar } from "../tar.js"
@ -5,7 +6,7 @@ import { setupTar } from "../tar.js"
jest.setTimeout(300000)
describe("setup-tar", () => {
it("should setup tar", async () => {
const installInfo = await setupTar("", "", process.arch)
const installInfo = await setupTar({ version: "", arch: process.arch, setupDir: untildifyUser("~/tar") })
await testBin("tar", ["--version"], (installInfo as InstallationInfo | undefined)?.binDir)
})

View File

@ -1,16 +1,16 @@
import { info } from "ci-log"
import { info, warning } from "ci-log"
import { hasApk, installApkPack } from "setup-alpine"
import { hasAptGet, installAptPack } from "setup-apt"
import { type SetupOptions, hasAptGet, installAptPack } from "setup-apt"
import { installBrewPack } from "setup-brew"
import which from "which"
import { hasDnf } from "../utils/env/hasDnf.js"
import { isArch } from "../utils/env/isArch.js"
import { setupBin } from "../utils/setup/setupBin.js"
import { type PackageInfo, setupBin } from "../utils/setup/setupBin.js"
import { setupDnfPack } from "../utils/setup/setupDnfPack.js"
import { setupPacmanPack } from "../utils/setup/setupPacmanPack.js"
// eslint-disable-next-line @typescript-eslint/no-unused-vars
export async function setupTar(version: string, setupDir: string, arch: string) {
export async function setupTar({ version, arch, setupDir }: SetupOptions) {
const tar = await which("tar", { nothrow: true })
if (tar !== null) {
info(`tar already installed at ${tar}`)
@ -23,15 +23,8 @@ export async function setupTar(version: string, setupDir: string, arch: string)
// https://phoenixnap.dl.sourceforge.net/project/gnuwin32/tar/1.13-1/tar-1.13-1-bin.zip?viasf=1
return setupBin(
"tar",
"1.13-1",
() => {
return {
url: "https://phoenixnap.dl.sourceforge.net/project/gnuwin32/tar/1.13-1/tar-1.13-1-bin.zip?viasf=1",
extractedFolderName: "",
binRelativeDir: "bin",
binFileName: "tar.exe",
}
},
version,
getGnuWinTarPackageInfo,
setupDir,
arch,
)
@ -59,3 +52,18 @@ export async function setupTar(version: string, setupDir: string, arch: string)
}
}
}
function getGnuWinTarPackageInfo(version: string, platform: NodeJS.Platform, arch: string): PackageInfo {
if (platform !== "win32") {
throw new Error("Unsupported platform")
}
if (arch !== "x64") {
warning(`Unsupported architecture ${arch} for tar on Windows. Using x64.`)
}
return {
url: `https://phoenixnap.dl.sourceforge.net/project/gnuwin32/tar/${version}/tar-${version}-bin.zip?viasf=1`,
extractedFolderName: "",
binRelativeDir: "bin",
binFileName: "tar.exe",
}
}

View File

@ -1,5 +1,5 @@
import { setupAptFast, setupNala, type InstallationInfo } from "setup-apt"
import { setupBrew, type SetupBrewOptions } from "setup-brew"
import { type InstallationInfo, setupAptFast, setupNala } from "setup-apt"
import { type SetupBrewOptions, setupBrew } from "setup-brew"
import { setupBazel } from "./bazel/bazel.js"
import { setupCcache } from "./ccache/ccache.js"
import { setupChocolatey } from "./chocolatey/chocolatey.js"
@ -22,7 +22,7 @@ import { setupAppleClang } from "./llvm/apple-clang.js"
import { setupClangFormat, setupClangTools, setupLLVM } from "./llvm/llvm.js"
import { setupMake } from "./make/make.js"
import { setupMeson } from "./meson/meson.js"
import { setupMSVC, type SetupMSVCOptions } from "./msvc/msvc.js"
import { type SetupMSVCOptions, setupMSVC } from "./msvc/msvc.js"
import { setupNinja } from "./ninja/ninja.js"
import { setupOpencppcoverage } from "./opencppcoverage/opencppcoverage.js"
import { setupPowershell } from "./powershell/powershell.js"
@ -33,7 +33,7 @@ import { setupSevenZip } from "./sevenzip/sevenzip.js"
import { setupTar } from "./tar/tar.js"
import { setupTask } from "./task/task.js"
import { setupVcpkg } from "./vcpkg/vcpkg.js"
import { setupVCVarsall, type SetupVCVarsallOptions } from "./vcvarsall/vcvarsall.js"
import { type SetupVCVarsallOptions, setupVCVarsall } from "./vcvarsall/vcvarsall.js"
export const llvmSetups = { llvm: setupLLVM, clang: setupLLVM, "clang++": setupLLVM } as const
export const gccSetups = { gcc: setupGcc, "g++": setupGcc } as const

View File

@ -3,6 +3,7 @@ import { grantUserWriteAccess } from "admina"
import { info, warning } from "ci-log"
import { execa } from "execa"
import { mkdirp, move, readdir, remove, stat } from "fs-extra"
import { untildifyUser } from "untildify-user"
import which from "which"
import { setupSevenZip } from "../../sevenzip/sevenzip.js"
import { setupTar } from "../../tar/tar.js"
@ -87,10 +88,10 @@ async function extractTarXzBy7zip(file: string, name: string, dest: string, stri
await remove(tarFile)
// move the extracted files to the destination
info(`Moving ${tarDir} to ${dest}`)
const files = await readdir(tarDir)
const tarDirFiles = await readdir(tarDir)
await Promise.all(
files.map(async (file) => {
await move(join(tarDir, file), join(dest, file), { overwrite: true })
tarDirFiles.map(async (tarDirFile) => {
await move(join(tarDir, tarDirFile), join(dest, tarDirFile), { overwrite: true })
}),
)
await remove(tarDir)
@ -169,7 +170,7 @@ export async function extractZip(file: string, dest: string) {
}
export async function extractTarByExe(file: string, dest: string, stripComponents: number = 0, flags: string[] = []) {
await setupTar("", "", process.arch)
await setupTar({ version: "", arch: process.arch, setupDir: untildifyUser("~/tar") })
try {
await mkdirp(dest)

View File

@ -40,6 +40,10 @@
},
"else": "1.14.0"
},
"tar": {
"win32": "1.13-1",
"else": ""
},
"gcc": {
"win32": "15.1.0posix-12.0.0-ucrt-r1",
"else": ""