setup-cpp
Version:
Install all the tools required for building and testing C++/C projects.
34 lines • 5.46 kB
JavaScript
import { defaultExecOptions, execRootSync } from "admina";
import { getAptEnv } from "./apt-env.js";
import { aptTimeout } from "./apt-timeout.js";
import { getApt } from "./get-apt.js";
import { initAptMemoized } from "./init-apt.js";
import { isAptPackInstalled } from "./is-installed.js";
import { updateAptReposMemoized } from "./update.js";
export async function addAptRepository(repo, apt = getApt()) {
await initAptMemoized(apt);
await installAddAptRepo();
execRootSync("add-apt-repository", ["-y", "--no-update", repo], { ...defaultExecOptions, env: getAptEnv(apt) });
// Update the repos
updateAptReposMemoized.clear(); // ensure update is called
updateAptReposMemoized(apt);
}
export async function installAddAptRepo() {
if (await isAptPackInstalled("software-properties-common")) {
return;
}
const apt = "apt-get";
execRootSync(apt, ["install", "-y", "--fix-broken", "-o", aptTimeout, "software-properties-common"], { ...defaultExecOptions, env: getAptEnv(apt) });
}
export async function removeAptRepository(repo, apt = getApt()) {
await initAptMemoized(apt);
await installAddAptRepo();
execRootSync("add-apt-repository", ["-y", "--no-update", "--remove", repo], {
...defaultExecOptions,
env: getAptEnv(apt),
});
// Update the repos
updateAptReposMemoized.clear(); // ensure update is called
updateAptReposMemoized(apt);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXB0LXJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXB0LXJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRXBELE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLEdBQUcsR0FBRyxNQUFNLEVBQUU7SUFDakUsTUFBTSxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDMUIsTUFBTSxpQkFBaUIsRUFBRSxDQUFBO0lBQ3pCLFlBQVksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRS9HLG1CQUFtQjtJQUNuQixzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQSxDQUFDLDBCQUEwQjtJQUN6RCxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUM3QixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxpQkFBaUI7SUFDckMsSUFBSSxNQUFNLGtCQUFrQixDQUFDLDRCQUE0QixDQUFDLEVBQUUsQ0FBQztRQUMzRCxPQUFNO0lBQ1IsQ0FBQztJQUNELE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQTtJQUNyQixZQUFZLENBQ1YsR0FBRyxFQUNILENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSw0QkFBNEIsQ0FBQyxFQUNqRixFQUFFLEdBQUcsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUMvQyxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsbUJBQW1CLENBQUMsSUFBWSxFQUFFLEdBQUcsR0FBRyxNQUFNLEVBQUU7SUFDcEUsTUFBTSxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDMUIsTUFBTSxpQkFBaUIsRUFBRSxDQUFBO0lBQ3pCLFlBQVksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQzFFLEdBQUcsa0JBQWtCO1FBQ3JCLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDO0tBQ3BCLENBQUMsQ0FBQTtJQUVGLG1CQUFtQjtJQUNuQixzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQSxDQUFDLDBCQUEwQjtJQUN6RCxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmYXVsdEV4ZWNPcHRpb25zLCBleGVjUm9vdFN5bmMgfSBmcm9tIFwiYWRtaW5hXCJcbmltcG9ydCB7IGdldEFwdEVudiB9IGZyb20gXCIuL2FwdC1lbnYuanNcIlxuaW1wb3J0IHsgYXB0VGltZW91dCB9IGZyb20gXCIuL2FwdC10aW1lb3V0LmpzXCJcbmltcG9ydCB7IGdldEFwdCB9IGZyb20gXCIuL2dldC1hcHQuanNcIlxuaW1wb3J0IHsgaW5pdEFwdE1lbW9pemVkIH0gZnJvbSBcIi4vaW5pdC1hcHQuanNcIlxuaW1wb3J0IHsgaXNBcHRQYWNrSW5zdGFsbGVkIH0gZnJvbSBcIi4vaXMtaW5zdGFsbGVkLmpzXCJcbmltcG9ydCB7IHVwZGF0ZUFwdFJlcG9zTWVtb2l6ZWQgfSBmcm9tIFwiLi91cGRhdGUuanNcIlxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkQXB0UmVwb3NpdG9yeShyZXBvOiBzdHJpbmcsIGFwdCA9IGdldEFwdCgpKSB7XG4gIGF3YWl0IGluaXRBcHRNZW1vaXplZChhcHQpXG4gIGF3YWl0IGluc3RhbGxBZGRBcHRSZXBvKClcbiAgZXhlY1Jvb3RTeW5jKFwiYWRkLWFwdC1yZXBvc2l0b3J5XCIsIFtcIi15XCIsIFwiLS1uby11cGRhdGVcIiwgcmVwb10sIHsgLi4uZGVmYXVsdEV4ZWNPcHRpb25zLCBlbnY6IGdldEFwdEVudihhcHQpIH0pXG5cbiAgLy8gVXBkYXRlIHRoZSByZXBvc1xuICB1cGRhdGVBcHRSZXBvc01lbW9pemVkLmNsZWFyKCkgLy8gZW5zdXJlIHVwZGF0ZSBpcyBjYWxsZWRcbiAgdXBkYXRlQXB0UmVwb3NNZW1vaXplZChhcHQpXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnN0YWxsQWRkQXB0UmVwbygpIHtcbiAgaWYgKGF3YWl0IGlzQXB0UGFja0luc3RhbGxlZChcInNvZnR3YXJlLXByb3BlcnRpZXMtY29tbW9uXCIpKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgY29uc3QgYXB0ID0gXCJhcHQtZ2V0XCJcbiAgZXhlY1Jvb3RTeW5jKFxuICAgIGFwdCxcbiAgICBbXCJpbnN0YWxsXCIsIFwiLXlcIiwgXCItLWZpeC1icm9rZW5cIiwgXCItb1wiLCBhcHRUaW1lb3V0LCBcInNvZnR3YXJlLXByb3BlcnRpZXMtY29tbW9uXCJdLFxuICAgIHsgLi4uZGVmYXVsdEV4ZWNPcHRpb25zLCBlbnY6IGdldEFwdEVudihhcHQpIH0sXG4gIClcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbW92ZUFwdFJlcG9zaXRvcnkocmVwbzogc3RyaW5nLCBhcHQgPSBnZXRBcHQoKSkge1xuICBhd2FpdCBpbml0QXB0TWVtb2l6ZWQoYXB0KVxuICBhd2FpdCBpbnN0YWxsQWRkQXB0UmVwbygpXG4gIGV4ZWNSb290U3luYyhcImFkZC1hcHQtcmVwb3NpdG9yeVwiLCBbXCIteVwiLCBcIi0tbm8tdXBkYXRlXCIsIFwiLS1yZW1vdmVcIiwgcmVwb10sIHtcbiAgICAuLi5kZWZhdWx0RXhlY09wdGlvbnMsXG4gICAgZW52OiBnZXRBcHRFbnYoYXB0KSxcbiAgfSlcblxuICAvLyBVcGRhdGUgdGhlIHJlcG9zXG4gIHVwZGF0ZUFwdFJlcG9zTWVtb2l6ZWQuY2xlYXIoKSAvLyBlbnN1cmUgdXBkYXRlIGlzIGNhbGxlZFxuICB1cGRhdGVBcHRSZXBvc01lbW9pemVkKGFwdClcbn1cbiJdfQ==