mirror of https://github.com/aminya/setup-cpp
refactor: add getSevenZip function
This commit is contained in:
parent
f815a5ccfc
commit
ba5279b00d
|
@ -3,12 +3,17 @@ import { mkdirP } from "@actions/io"
|
||||||
import which from "which"
|
import which from "which"
|
||||||
import { setupSevenZip } from "../../sevenzip/sevenzip"
|
import { setupSevenZip } from "../../sevenzip/sevenzip"
|
||||||
import { warning } from "../io/io"
|
import { warning } from "../io/io"
|
||||||
export { extractTar, extractXar, extract7z, extractZip } from "@actions/tool-cache"
|
export { extractTar, extractXar, extract7z } from "@actions/tool-cache"
|
||||||
|
|
||||||
let sevenZip: string | undefined
|
let sevenZip: string | undefined
|
||||||
|
|
||||||
export async function extractExe(file: string, dest: string) {
|
export async function extractExe(file: string, dest: string) {
|
||||||
// install 7z if needed
|
await execa(await getSevenZip(), ["x", file, `-o${dest}`], { stdio: "inherit" })
|
||||||
|
return dest
|
||||||
|
}
|
||||||
|
|
||||||
|
/// install 7z if needed
|
||||||
|
async function getSevenZip() {
|
||||||
if (sevenZip === undefined) {
|
if (sevenZip === undefined) {
|
||||||
if (which.sync("7z", { nothrow: true }) === null) {
|
if (which.sync("7z", { nothrow: true }) === null) {
|
||||||
await setupSevenZip("", "", process.arch)
|
await setupSevenZip("", "", process.arch)
|
||||||
|
@ -16,9 +21,7 @@ export async function extractExe(file: string, dest: string) {
|
||||||
// eslint-disable-next-line require-atomic-updates
|
// eslint-disable-next-line require-atomic-updates
|
||||||
sevenZip = "7z"
|
sevenZip = "7z"
|
||||||
}
|
}
|
||||||
|
return sevenZip
|
||||||
await execa(sevenZip, ["x", file, `-o${dest}`], { stdio: "inherit" })
|
|
||||||
return dest
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function extractTarByExe(file: string, dest: string, flags = ["--strip-components=0"]) {
|
export async function extractTarByExe(file: string, dest: string, flags = ["--strip-components=0"]) {
|
||||||
|
|
Loading…
Reference in New Issue