mirror of https://github.com/aminya/setup-cpp
chore: move execaSudo
This commit is contained in:
parent
614ed712da
commit
1410ebe4ca
|
@ -2,7 +2,7 @@ import execa from "execa"
|
||||||
// import { join } from "path"
|
// import { join } from "path"
|
||||||
// import { untildify_user as untildify } from "./utils/path/untildify"
|
// import { untildify_user as untildify } from "./utils/path/untildify"
|
||||||
// import { setupCmake } from "../cmake/cmake"
|
// import { setupCmake } from "../cmake/cmake"
|
||||||
import { execaSudo } from "../utils/env/sudo"
|
import { execSudo } from "../utils/exec/sudo"
|
||||||
import { addBinExtension } from "../utils/extension/extension"
|
import { addBinExtension } from "../utils/extension/extension"
|
||||||
import { extractTarByExe } from "../utils/setup/extract"
|
import { extractTarByExe } from "../utils/setup/extract"
|
||||||
import { setupAptPack } from "../utils/setup/setupAptPack"
|
import { setupAptPack } from "../utils/setup/setupAptPack"
|
||||||
|
@ -38,7 +38,7 @@ function getKcovPackageInfo(version: string): PackageInfo {
|
||||||
await setupAptPack("libcurl4-openssl-dev")
|
await setupAptPack("libcurl4-openssl-dev")
|
||||||
await execa("cmake", ["-S", "./", "-B", "./build"], { cwd: out })
|
await execa("cmake", ["-S", "./", "-B", "./build"], { cwd: out })
|
||||||
await execa("cmake", ["--build", "./build", "--config", "Release"], { cwd: out })
|
await execa("cmake", ["--build", "./build", "--config", "Release"], { cwd: out })
|
||||||
await execaSudo("cmake", ["--install", "./build"], out)
|
await execSudo("cmake", ["--install", "./build"], out)
|
||||||
return out
|
return out
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
import execa from "execa"
|
|
||||||
import which from "which"
|
import which from "which"
|
||||||
|
|
||||||
let _issudo: boolean | undefined = undefined
|
let _issudo: boolean | undefined = undefined
|
||||||
|
@ -18,11 +17,3 @@ export function mightSudo(command: string) {
|
||||||
}
|
}
|
||||||
return command
|
return command
|
||||||
}
|
}
|
||||||
|
|
||||||
export function execaSudo(file: string, args: string[], cwd?: string) {
|
|
||||||
if (isRoot()) {
|
|
||||||
return execa.command(`sudo ${[file, ...args].map((arg) => `'${arg}'`).join(" ")}`, { shell: true, cwd })
|
|
||||||
} else {
|
|
||||||
return execa(file, args)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
import execa from "execa"
|
||||||
|
import { isRoot } from "../env/sudo"
|
||||||
|
|
||||||
|
export function execSudo(file: string, args: string[], cwd?: string) {
|
||||||
|
if (isRoot()) {
|
||||||
|
return execa.command(`sudo ${[file, ...args].map((arg) => `'${arg}'`).join(" ")}`, { shell: true, cwd })
|
||||||
|
} else {
|
||||||
|
return execa(file, args)
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
/* eslint-disable require-atomic-updates */
|
/* eslint-disable require-atomic-updates */
|
||||||
import { InstallationInfo } from "./setupBin"
|
import { InstallationInfo } from "./setupBin"
|
||||||
import { execaSudo } from "../env/sudo"
|
import { execSudo } from "../exec/sudo"
|
||||||
|
|
||||||
let didUpdate: boolean = false
|
let didUpdate: boolean = false
|
||||||
let didInit: boolean = false
|
let didInit: boolean = false
|
||||||
|
@ -16,7 +16,7 @@ export async function setupAptPack(
|
||||||
process.env.DEBIAN_FRONTEND = "noninteractive"
|
process.env.DEBIAN_FRONTEND = "noninteractive"
|
||||||
|
|
||||||
if (!didUpdate) {
|
if (!didUpdate) {
|
||||||
await execaSudo(apt, ["update", "-y"])
|
await execSudo(apt, ["update", "-y"])
|
||||||
didUpdate = true
|
didUpdate = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ export async function setupAptPack(
|
||||||
// set time - zone
|
// set time - zone
|
||||||
// TZ = Canada / Pacific
|
// TZ = Canada / Pacific
|
||||||
// ln - snf / usr / share / zoneinfo / $TZ / etc / localtime && echo $TZ > /etc/timezone
|
// ln - snf / usr / share / zoneinfo / $TZ / etc / localtime && echo $TZ > /etc/timezone
|
||||||
await execaSudo(apt, [
|
await execSudo(apt, [
|
||||||
"install",
|
"install",
|
||||||
"--fix-broken",
|
"--fix-broken",
|
||||||
"-y",
|
"-y",
|
||||||
|
@ -40,19 +40,19 @@ export async function setupAptPack(
|
||||||
if (Array.isArray(repositories)) {
|
if (Array.isArray(repositories)) {
|
||||||
for (const repo of repositories) {
|
for (const repo of repositories) {
|
||||||
// eslint-disable-next-line no-await-in-loop
|
// eslint-disable-next-line no-await-in-loop
|
||||||
await execaSudo("add-apt-repository", ["--update", "-y", repo])
|
await execSudo("add-apt-repository", ["--update", "-y", repo])
|
||||||
}
|
}
|
||||||
await execaSudo(apt, ["update", "-y"])
|
await execSudo(apt, ["update", "-y"])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (version !== undefined && version !== "") {
|
if (version !== undefined && version !== "") {
|
||||||
try {
|
try {
|
||||||
await execaSudo(apt, ["install", "--fix-broken", "-y", `${name}=${version}`])
|
await execSudo(apt, ["install", "--fix-broken", "-y", `${name}=${version}`])
|
||||||
} catch {
|
} catch {
|
||||||
await execaSudo(apt, ["install", "--fix-broken", "-y", `${name}-${version}`])
|
await execSudo(apt, ["install", "--fix-broken", "-y", `${name}-${version}`])
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
await execaSudo(apt, ["install", "--fix-broken", "-y", name])
|
await execSudo(apt, ["install", "--fix-broken", "-y", name])
|
||||||
}
|
}
|
||||||
|
|
||||||
return { binDir: "/usr/bin/" }
|
return { binDir: "/usr/bin/" }
|
||||||
|
|
Loading…
Reference in New Issue