setup-apt
Version:
Setup apt packages and repositories in Debian/Ubuntu-based distributions
46 lines • 4.12 kB
JavaScript
import which from "which";
/**
* Check if nala is installed
*/
export function hasNala() {
return process.platform === "linux" && which.sync("nala", { nothrow: true }) !== null;
}
/**
* Check if apt-fast is installed
*/
export function hasAptFast() {
return process.platform === "linux" && which.sync("apt-fast", { nothrow: true }) !== null;
}
/**
* Check if apt is installed
*/
export function hasApt() {
return process.platform === "linux" && which.sync("apt", { nothrow: true }) !== null;
}
/**
* Check if apt-get is installed
*/
export function hasAptGet() {
return process.platform === "linux" && which.sync("apt-get", { nothrow: true }) !== null;
}
/**
* Get the apt command to use
* If nala is installed, use that, otherwise use apt-get
*/
export function getApt() {
if (hasNala()) {
return "nala";
}
else if (hasAptFast()) {
return "apt-fast";
// } else if (hasApt()) {
// return "apt"
}
else if (hasAptGet()) {
return "apt-get";
}
else {
throw new Error("No apt command found");
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9nZXQtYXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUV6Qjs7R0FFRztBQUNILE1BQU0sVUFBVSxPQUFPO0lBQ3JCLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUE7QUFDdkYsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFVBQVU7SUFDeEIsT0FBTyxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQTtBQUMzRixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsTUFBTTtJQUNwQixPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFBO0FBQ3RGLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxTQUFTO0lBQ3ZCLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUE7QUFDMUYsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxNQUFNO0lBQ3BCLElBQUksT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNkLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQztTQUFNLElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztRQUN4QixPQUFPLFVBQVUsQ0FBQTtRQUNqQix5QkFBeUI7UUFDekIsaUJBQWlCO0lBQ25CLENBQUM7U0FBTSxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7UUFDdkIsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFDekMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgd2hpY2ggZnJvbSBcIndoaWNoXCJcblxuLyoqXG4gKiBDaGVjayBpZiBuYWxhIGlzIGluc3RhbGxlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzTmFsYSgpIHtcbiAgcmV0dXJuIHByb2Nlc3MucGxhdGZvcm0gPT09IFwibGludXhcIiAmJiB3aGljaC5zeW5jKFwibmFsYVwiLCB7IG5vdGhyb3c6IHRydWUgfSkgIT09IG51bGxcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhcHQtZmFzdCBpcyBpbnN0YWxsZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0FwdEZhc3QoKSB7XG4gIHJldHVybiBwcm9jZXNzLnBsYXRmb3JtID09PSBcImxpbnV4XCIgJiYgd2hpY2guc3luYyhcImFwdC1mYXN0XCIsIHsgbm90aHJvdzogdHJ1ZSB9KSAhPT0gbnVsbFxufVxuXG4vKipcbiAqIENoZWNrIGlmIGFwdCBpcyBpbnN0YWxsZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0FwdCgpIHtcbiAgcmV0dXJuIHByb2Nlc3MucGxhdGZvcm0gPT09IFwibGludXhcIiAmJiB3aGljaC5zeW5jKFwiYXB0XCIsIHsgbm90aHJvdzogdHJ1ZSB9KSAhPT0gbnVsbFxufVxuXG4vKipcbiAqIENoZWNrIGlmIGFwdC1nZXQgaXMgaW5zdGFsbGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNBcHRHZXQoKSB7XG4gIHJldHVybiBwcm9jZXNzLnBsYXRmb3JtID09PSBcImxpbnV4XCIgJiYgd2hpY2guc3luYyhcImFwdC1nZXRcIiwgeyBub3Rocm93OiB0cnVlIH0pICE9PSBudWxsXG59XG5cbi8qKlxuICogR2V0IHRoZSBhcHQgY29tbWFuZCB0byB1c2VcbiAqIElmIG5hbGEgaXMgaW5zdGFsbGVkLCB1c2UgdGhhdCwgb3RoZXJ3aXNlIHVzZSBhcHQtZ2V0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcHQoKSB7XG4gIGlmIChoYXNOYWxhKCkpIHtcbiAgICByZXR1cm4gXCJuYWxhXCJcbiAgfSBlbHNlIGlmIChoYXNBcHRGYXN0KCkpIHtcbiAgICByZXR1cm4gXCJhcHQtZmFzdFwiXG4gICAgLy8gfSBlbHNlIGlmIChoYXNBcHQoKSkge1xuICAgIC8vICAgcmV0dXJuIFwiYXB0XCJcbiAgfSBlbHNlIGlmIChoYXNBcHRHZXQoKSkge1xuICAgIHJldHVybiBcImFwdC1nZXRcIlxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihcIk5vIGFwdCBjb21tYW5kIGZvdW5kXCIpXG4gIH1cbn1cbiJdfQ==