admina
Version:
Detect root/admin/sudo and execute commands as it if available
29 lines • 2.63 kB
JavaScript
// From `is-admin`: updated execa
import { execa } from "execa";
// https://stackoverflow.com/a/28268802
async function testFltmc() {
try {
await execa("fltmc");
return true;
}
catch {
return false;
}
}
export default async function isAdmin() {
if (process.platform !== "win32") {
return false;
}
try {
// https://stackoverflow.com/a/21295806/1641422
await execa("fsutil", ["dirty", "query", process.env.systemdrive ?? ""]);
return true;
}
catch (error) {
if (error.code === "ENOENT") {
return testFltmc();
}
return false;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYWRtaW4ubWpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2lzLWFkbWluLm10cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUM7QUFFakMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUU3Qix1Q0FBdUM7QUFDdkMsS0FBSyxVQUFVLFNBQVM7SUFDdEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDcEIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxVQUFVLE9BQU87SUFDbkMsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILCtDQUErQztRQUMvQyxNQUFNLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDeEUsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUssS0FBMkIsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkQsT0FBTyxTQUFTLEVBQUUsQ0FBQTtRQUNwQixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEZyb20gYGlzLWFkbWluYDogdXBkYXRlZCBleGVjYVxuXG5pbXBvcnQgeyBleGVjYSB9IGZyb20gXCJleGVjYVwiXG5cbi8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yODI2ODgwMlxuYXN5bmMgZnVuY3Rpb24gdGVzdEZsdG1jKCkge1xuICB0cnkge1xuICAgIGF3YWl0IGV4ZWNhKFwiZmx0bWNcIilcbiAgICByZXR1cm4gdHJ1ZVxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBpc0FkbWluKCkge1xuICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSAhPT0gXCJ3aW4zMlwiKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICB0cnkge1xuICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yMTI5NTgwNi8xNjQxNDIyXG4gICAgYXdhaXQgZXhlY2EoXCJmc3V0aWxcIiwgW1wiZGlydHlcIiwgXCJxdWVyeVwiLCBwcm9jZXNzLmVudi5zeXN0ZW1kcml2ZSA/PyBcIlwiXSlcbiAgICByZXR1cm4gdHJ1ZVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmICgoZXJyb3IgYXMgeyBjb2RlPzogc3RyaW5nIH0pLmNvZGUgPT09IFwiRU5PRU5UXCIpIHtcbiAgICAgIHJldHVybiB0ZXN0Rmx0bWMoKVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG4iXX0=