setup-cpp
Version:
Install all the tools required for building and testing C++/C projects.
32 lines • 4.5 kB
JavaScript
import { promises } from "fs";
import { execRoot } from "admina";
import ciInfo from "ci-info";
const { GITHUB_ACTIONS } = ciInfo;
import { sourceRC } from "envosman";
const { appendFile } = promises;
/**
* Update the alternatives for a package
* @param name The name of the package
* @param path The path to the binary
* @param priority The priority of the alternative (Defaults to `40`)
*/
export async function updateAptAlternatives(name, path, priority = 40) {
await execRoot("update-alternatives", ["--install", `/usr/bin/${name}`, name, path, priority.toString()]);
}
/**
* Add the update-alternatives command to the rc file
* @param name The name of the package
* @param path The path to the binary
* @param rcOptions The options for the rc file to add the update-alternatives command to
* @param priority The priority of the alternative (Defaults to `40`)
*/
export async function addUpdateAlternativesToRc(name, path, rcOptions, priority = 40) {
if (GITHUB_ACTIONS) {
await updateAptAlternatives(name, path, priority);
}
else {
await sourceRC(rcOptions);
await appendFile(rcOptions.rcPath, `\nif [ $UID -eq 0 ]; then update-alternatives --install /usr/bin/${name} ${name} ${path} ${priority}; fi\n`);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWx0ZXJuYXRpdmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FsdGVybmF0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQzdCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDakMsT0FBTyxNQUFNLE1BQU0sU0FBUyxDQUFBO0FBQzVCLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLENBQUE7QUFDakMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUVuQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsUUFBUSxDQUFBO0FBRS9COzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxxQkFBcUIsQ0FBQyxJQUFZLEVBQUUsSUFBWSxFQUFFLFdBQW1CLEVBQUU7SUFDM0YsTUFBTSxRQUFRLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxXQUFXLEVBQUUsWUFBWSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDM0csQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUseUJBQXlCLENBQzdDLElBQVksRUFDWixJQUFZLEVBQ1osU0FBb0IsRUFDcEIsV0FBbUIsRUFBRTtJQUVyQixJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ25CLE1BQU0scUJBQXFCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUNuRCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3pCLE1BQU0sVUFBVSxDQUNkLFNBQVMsQ0FBQyxNQUFNLEVBQ2hCLG9FQUFvRSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxRQUFRLFFBQVEsQ0FDN0csQ0FBQTtJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvbWlzZXMgfSBmcm9tIFwiZnNcIlxuaW1wb3J0IHsgZXhlY1Jvb3QgfSBmcm9tIFwiYWRtaW5hXCJcbmltcG9ydCBjaUluZm8gZnJvbSBcImNpLWluZm9cIlxuY29uc3QgeyBHSVRIVUJfQUNUSU9OUyB9ID0gY2lJbmZvXG5pbXBvcnQgeyBzb3VyY2VSQyB9IGZyb20gXCJlbnZvc21hblwiXG5pbXBvcnQgdHlwZSB7IFJjT3B0aW9ucyB9IGZyb20gXCJlbnZvc21hbi9kaXN0L3JjLWZpbGUuanNcIlxuY29uc3QgeyBhcHBlbmRGaWxlIH0gPSBwcm9taXNlc1xuXG4vKipcbiAqIFVwZGF0ZSB0aGUgYWx0ZXJuYXRpdmVzIGZvciBhIHBhY2thZ2VcbiAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBwYWNrYWdlXG4gKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byB0aGUgYmluYXJ5XG4gKiBAcGFyYW0gcHJpb3JpdHkgVGhlIHByaW9yaXR5IG9mIHRoZSBhbHRlcm5hdGl2ZSAoRGVmYXVsdHMgdG8gYDQwYClcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUFwdEFsdGVybmF0aXZlcyhuYW1lOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgcHJpb3JpdHk6IG51bWJlciA9IDQwKSB7XG4gIGF3YWl0IGV4ZWNSb290KFwidXBkYXRlLWFsdGVybmF0aXZlc1wiLCBbXCItLWluc3RhbGxcIiwgYC91c3IvYmluLyR7bmFtZX1gLCBuYW1lLCBwYXRoLCBwcmlvcml0eS50b1N0cmluZygpXSlcbn1cblxuLyoqXG4gKiBBZGQgdGhlIHVwZGF0ZS1hbHRlcm5hdGl2ZXMgY29tbWFuZCB0byB0aGUgcmMgZmlsZVxuICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHBhY2thZ2VcbiAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIHRvIHRoZSBiaW5hcnlcbiAqIEBwYXJhbSByY09wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSByYyBmaWxlIHRvIGFkZCB0aGUgdXBkYXRlLWFsdGVybmF0aXZlcyBjb21tYW5kIHRvXG4gKiBAcGFyYW0gcHJpb3JpdHkgVGhlIHByaW9yaXR5IG9mIHRoZSBhbHRlcm5hdGl2ZSAoRGVmYXVsdHMgdG8gYDQwYClcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZFVwZGF0ZUFsdGVybmF0aXZlc1RvUmMoXG4gIG5hbWU6IHN0cmluZyxcbiAgcGF0aDogc3RyaW5nLFxuICByY09wdGlvbnM6IFJjT3B0aW9ucyxcbiAgcHJpb3JpdHk6IG51bWJlciA9IDQwLFxuKSB7XG4gIGlmIChHSVRIVUJfQUNUSU9OUykge1xuICAgIGF3YWl0IHVwZGF0ZUFwdEFsdGVybmF0aXZlcyhuYW1lLCBwYXRoLCBwcmlvcml0eSlcbiAgfSBlbHNlIHtcbiAgICBhd2FpdCBzb3VyY2VSQyhyY09wdGlvbnMpXG4gICAgYXdhaXQgYXBwZW5kRmlsZShcbiAgICAgIHJjT3B0aW9ucy5yY1BhdGgsXG4gICAgICBgXFxuaWYgWyAkVUlEIC1lcSAwIF07IHRoZW4gdXBkYXRlLWFsdGVybmF0aXZlcyAtLWluc3RhbGwgL3Vzci9iaW4vJHtuYW1lfSAke25hbWV9ICR7cGF0aH0gJHtwcmlvcml0eX07IGZpXFxuYCxcbiAgICApXG4gIH1cbn1cbiJdfQ==