UNPKG

admina

Version:

Detect root/admin/sudo and execute commands as it if available

17 lines 2.66 kB
import { isSudo, execRoot, defaultExecOptions } from "./root.mjs"; import fs from "fs"; /** * Give the user access to the given path (and its sub-directories if a directory). It changes the owner to the * SUDO_USER. This allows the user to use the folder without sudo * * @param path The path to give the user access to */ export async function grantUserWriteAccess(path) { if ((process.platform === "linux" || process.platform === "darwin") && isSudo() && process.env.SUDO_USER !== undefined) { const isDirectory = fs.statSync(path).isDirectory(); await execRoot("chown", [...(isDirectory ? ["-R"] : []), process.env.SUDO_USER, path], defaultExecOptions); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY2Nlc3MubWpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3VzZXItYWNjZXNzLm10cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNqRSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFFbkI7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLG9CQUFvQixDQUFDLElBQVk7SUFDckQsSUFDRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQUssT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDO1FBQy9ELE1BQU0sRUFBRTtRQUNSLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFDbkMsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDbkQsTUFBTSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtJQUM1RyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU3VkbywgZXhlY1Jvb3QsIGRlZmF1bHRFeGVjT3B0aW9ucyB9IGZyb20gXCIuL3Jvb3QubWpzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnNcIlxuXG4vKipcbiAqIEdpdmUgdGhlIHVzZXIgYWNjZXNzIHRvIHRoZSBnaXZlbiBwYXRoIChhbmQgaXRzIHN1Yi1kaXJlY3RvcmllcyBpZiBhIGRpcmVjdG9yeSkuIEl0IGNoYW5nZXMgdGhlIG93bmVyIHRvIHRoZVxuICogU1VET19VU0VSLiBUaGlzIGFsbG93cyB0aGUgdXNlciB0byB1c2UgdGhlIGZvbGRlciB3aXRob3V0IHN1ZG9cbiAqXG4gKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byBnaXZlIHRoZSB1c2VyIGFjY2VzcyB0b1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ3JhbnRVc2VyV3JpdGVBY2Nlc3MocGF0aDogc3RyaW5nKSB7XG4gIGlmIChcbiAgICAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gXCJsaW51eFwiIHx8IHByb2Nlc3MucGxhdGZvcm0gPT09IFwiZGFyd2luXCIpICYmXG4gICAgaXNTdWRvKCkgJiZcbiAgICBwcm9jZXNzLmVudi5TVURPX1VTRVIgIT09IHVuZGVmaW5lZFxuICApIHtcbiAgICBjb25zdCBpc0RpcmVjdG9yeSA9IGZzLnN0YXRTeW5jKHBhdGgpLmlzRGlyZWN0b3J5KClcbiAgICBhd2FpdCBleGVjUm9vdChcImNob3duXCIsIFsuLi4oaXNEaXJlY3RvcnkgPyBbXCItUlwiXSA6IFtdKSwgcHJvY2Vzcy5lbnYuU1VET19VU0VSLCBwYXRoXSwgZGVmYXVsdEV4ZWNPcHRpb25zKVxuICB9XG59XG4iXX0=