@avanio/os-api-linux-utils
Advanced tools
| /// <reference types="node" /> | ||
| import { ILinuxSudoOptions } from './sudo'; | ||
| export * from './sudo'; | ||
| /** | ||
| * Write a file to disk, optionally using sudo | ||
| * @param {string} fileName - The file to write | ||
| * @param {Buffer} content - The content to write | ||
| * @param {ILinuxSudoOptions} options - Options for sudo | ||
| */ | ||
| export declare function writeFile(fileName: string, content: Buffer, options?: ILinuxSudoOptions): void; | ||
| /** | ||
| * Read a file from disk, optionally using sudo | ||
| * @param {string} fileName - The file to read | ||
| * @param {ILinuxSudoOptions} options - Options for sudo | ||
| * @returns {Buffer} - The file contents | ||
| */ | ||
| export declare function readFile(fileName: string, options?: ILinuxSudoOptions): Buffer; | ||
| /** | ||
| * Delete a file from disk, optionally using sudo | ||
| * @param {string} fileName - The file to delete | ||
| * @param {ILinuxSudoOptions} options - Options for sudo | ||
| */ | ||
| export declare function deleteFile(fileName: string, options?: ILinuxSudoOptions): void; | ||
| /** | ||
| * Async write a file to disk, optionally using sudo | ||
| * @param {string} fileName - The file to write | ||
| * @param {Buffer} content - The content to write | ||
| * @param {ILinuxSudoOptions} options - Options for sudo | ||
| * @returns {Promise<void>} - Promise of write | ||
| */ | ||
| export declare function writeFilePromise(fileName: string, content: Buffer, options?: ILinuxSudoOptions): Promise<void>; | ||
| /** | ||
| * Async read a file from disk, optionally using sudo | ||
| * @param {string} fileName - The file to read | ||
| * @param {ILinuxSudoOptions} options - Options for sudo | ||
| * @returns {Promise<Buffer>} - Promise of the file content | ||
| */ | ||
| export declare function readFilePromise(fileName: string, options?: ILinuxSudoOptions): Promise<Buffer>; | ||
| /** | ||
| * Async delete a file from disk, optionally using sudo | ||
| * @param {string} fileName - The file to delete | ||
| * @param {ILinuxSudoOptions} options - Options for sudo | ||
| * @returns {Promise<void>} - Promise of delete | ||
| */ | ||
| export declare function deleteFilePromise(fileName: string, options?: ILinuxSudoOptions): Promise<void>; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.deleteFilePromise = exports.readFilePromise = exports.writeFilePromise = exports.deleteFile = exports.readFile = exports.writeFile = void 0; | ||
| const tslib_1 = require("tslib"); | ||
| const fsPromise = require("fs/promises"); | ||
| const sudo_1 = require("./sudo"); | ||
| const fs_1 = require("fs"); | ||
| tslib_1.__exportStar(require("./sudo"), exports); | ||
| /** | ||
| * Write a file to disk, optionally using sudo | ||
| * @param {string} fileName - The file to write | ||
| * @param {Buffer} content - The content to write | ||
| * @param {ILinuxSudoOptions} options - Options for sudo | ||
| */ | ||
| function writeFile(fileName, content, options = { sudo: false }) { | ||
| if (options.sudo) { | ||
| return (0, sudo_1.sudoWriteFile)(fileName, content, options); | ||
| } | ||
| return (0, fs_1.writeFileSync)(fileName, content); | ||
| } | ||
| exports.writeFile = writeFile; | ||
| /** | ||
| * Read a file from disk, optionally using sudo | ||
| * @param {string} fileName - The file to read | ||
| * @param {ILinuxSudoOptions} options - Options for sudo | ||
| * @returns {Buffer} - The file contents | ||
| */ | ||
| function readFile(fileName, options = { sudo: false }) { | ||
| if (options.sudo) { | ||
| return (0, sudo_1.sudoReadFile)(fileName, options); | ||
| } | ||
| return (0, fs_1.readFileSync)(fileName); | ||
| } | ||
| exports.readFile = readFile; | ||
| /** | ||
| * Delete a file from disk, optionally using sudo | ||
| * @param {string} fileName - The file to delete | ||
| * @param {ILinuxSudoOptions} options - Options for sudo | ||
| */ | ||
| function deleteFile(fileName, options = { sudo: false }) { | ||
| if (options.sudo) { | ||
| return (0, sudo_1.sudoDeleteFile)(fileName, options); | ||
| } | ||
| return (0, fs_1.unlinkSync)(fileName); | ||
| } | ||
| exports.deleteFile = deleteFile; | ||
| /** | ||
| * Async write a file to disk, optionally using sudo | ||
| * @param {string} fileName - The file to write | ||
| * @param {Buffer} content - The content to write | ||
| * @param {ILinuxSudoOptions} options - Options for sudo | ||
| * @returns {Promise<void>} - Promise of write | ||
| */ | ||
| async function writeFilePromise(fileName, content, options = { sudo: false }) { | ||
| if (options.sudo) { | ||
| return (0, sudo_1.sudoWriteFilePromise)(fileName, content, options); | ||
| } | ||
| return fsPromise.writeFile(fileName, content); | ||
| } | ||
| exports.writeFilePromise = writeFilePromise; | ||
| /** | ||
| * Async read a file from disk, optionally using sudo | ||
| * @param {string} fileName - The file to read | ||
| * @param {ILinuxSudoOptions} options - Options for sudo | ||
| * @returns {Promise<Buffer>} - Promise of the file content | ||
| */ | ||
| function readFilePromise(fileName, options = { sudo: false }) { | ||
| if (options.sudo) { | ||
| return (0, sudo_1.sudoReadFilePromise)(fileName, options); | ||
| } | ||
| return fsPromise.readFile(fileName); | ||
| } | ||
| exports.readFilePromise = readFilePromise; | ||
| /** | ||
| * Async delete a file from disk, optionally using sudo | ||
| * @param {string} fileName - The file to delete | ||
| * @param {ILinuxSudoOptions} options - Options for sudo | ||
| * @returns {Promise<void>} - Promise of delete | ||
| */ | ||
| async function deleteFilePromise(fileName, options = { sudo: false }) { | ||
| if (options.sudo) { | ||
| return (0, sudo_1.sudoDeleteFilePromise)(fileName, options); | ||
| } | ||
| return fsPromise.unlink(fileName); | ||
| } | ||
| exports.deleteFilePromise = deleteFilePromise; | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi9zcmMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEseUNBQXlDO0FBQ3pDLGlDQUF3SjtBQUN4SiwyQkFBMkQ7QUFDM0QsaURBQXVCO0FBRXZCOzs7OztHQUtHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLFFBQWdCLEVBQUUsT0FBZSxFQUFFLFVBQTZCLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBQztJQUN0RyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7UUFDakIsT0FBTyxJQUFBLG9CQUFhLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztLQUNqRDtJQUNELE9BQU8sSUFBQSxrQkFBYSxFQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBTEQsOEJBS0M7QUFFRDs7Ozs7R0FLRztBQUVILFNBQWdCLFFBQVEsQ0FBQyxRQUFnQixFQUFFLFVBQTZCLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBQztJQUNwRixJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7UUFDakIsT0FBTyxJQUFBLG1CQUFZLEVBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3ZDO0lBQ0QsT0FBTyxJQUFBLGlCQUFZLEVBQUMsUUFBUSxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUxELDRCQUtDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxRQUFnQixFQUFFLFVBQTZCLEVBQUMsSUFBSSxFQUFFLEtBQUssRUFBQztJQUN0RixJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7UUFDakIsT0FBTyxJQUFBLHFCQUFjLEVBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3pDO0lBQ0QsT0FBTyxJQUFBLGVBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBTEQsZ0NBS0M7QUFFRDs7Ozs7O0dBTUc7QUFDSSxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsUUFBZ0IsRUFBRSxPQUFlLEVBQUUsVUFBNkIsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFDO0lBQ25ILElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtRQUNqQixPQUFPLElBQUEsMkJBQW9CLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztLQUN4RDtJQUNELE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUxELDRDQUtDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQUMsUUFBZ0IsRUFBRSxVQUE2QixFQUFDLElBQUksRUFBRSxLQUFLLEVBQUM7SUFDM0YsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1FBQ2pCLE9BQU8sSUFBQSwwQkFBbUIsRUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDOUM7SUFDRCxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUxELDBDQUtDO0FBRUQ7Ozs7O0dBS0c7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQUMsUUFBZ0IsRUFBRSxVQUE2QixFQUFDLElBQUksRUFBRSxLQUFLLEVBQUM7SUFDbkcsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1FBQ2pCLE9BQU8sSUFBQSw0QkFBcUIsRUFBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDaEQ7SUFDRCxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUxELDhDQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnNQcm9taXNlIGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCB7SUxpbnV4U3Vkb09wdGlvbnMsIHN1ZG9EZWxldGVGaWxlLCBzdWRvRGVsZXRlRmlsZVByb21pc2UsIHN1ZG9SZWFkRmlsZSwgc3Vkb1JlYWRGaWxlUHJvbWlzZSwgc3Vkb1dyaXRlRmlsZSwgc3Vkb1dyaXRlRmlsZVByb21pc2V9IGZyb20gJy4vc3Vkbyc7XG5pbXBvcnQge3JlYWRGaWxlU3luYywgdW5saW5rU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdWRvJztcblxuLyoqXG4gKiBXcml0ZSBhIGZpbGUgdG8gZGlzaywgb3B0aW9uYWxseSB1c2luZyBzdWRvXG4gKiBAcGFyYW0ge3N0cmluZ30gZmlsZU5hbWUgLSBUaGUgZmlsZSB0byB3cml0ZVxuICogQHBhcmFtIHtCdWZmZXJ9IGNvbnRlbnQgLSBUaGUgY29udGVudCB0byB3cml0ZVxuICogQHBhcmFtIHtJTGludXhTdWRvT3B0aW9uc30gb3B0aW9ucyAtIE9wdGlvbnMgZm9yIHN1ZG9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlRmlsZShmaWxlTmFtZTogc3RyaW5nLCBjb250ZW50OiBCdWZmZXIsIG9wdGlvbnM6IElMaW51eFN1ZG9PcHRpb25zID0ge3N1ZG86IGZhbHNlfSk6IHZvaWQge1xuXHRpZiAob3B0aW9ucy5zdWRvKSB7XG5cdFx0cmV0dXJuIHN1ZG9Xcml0ZUZpbGUoZmlsZU5hbWUsIGNvbnRlbnQsIG9wdGlvbnMpO1xuXHR9XG5cdHJldHVybiB3cml0ZUZpbGVTeW5jKGZpbGVOYW1lLCBjb250ZW50KTtcbn1cblxuLyoqXG4gKiBSZWFkIGEgZmlsZSBmcm9tIGRpc2ssIG9wdGlvbmFsbHkgdXNpbmcgc3Vkb1xuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVOYW1lIC0gVGhlIGZpbGUgdG8gcmVhZFxuICogQHBhcmFtIHtJTGludXhTdWRvT3B0aW9uc30gb3B0aW9ucyAtIE9wdGlvbnMgZm9yIHN1ZG9cbiAqIEByZXR1cm5zIHtCdWZmZXJ9IC0gVGhlIGZpbGUgY29udGVudHNcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEZpbGUoZmlsZU5hbWU6IHN0cmluZywgb3B0aW9uczogSUxpbnV4U3Vkb09wdGlvbnMgPSB7c3VkbzogZmFsc2V9KTogQnVmZmVyIHtcblx0aWYgKG9wdGlvbnMuc3Vkbykge1xuXHRcdHJldHVybiBzdWRvUmVhZEZpbGUoZmlsZU5hbWUsIG9wdGlvbnMpO1xuXHR9XG5cdHJldHVybiByZWFkRmlsZVN5bmMoZmlsZU5hbWUpO1xufVxuXG4vKipcbiAqIERlbGV0ZSBhIGZpbGUgZnJvbSBkaXNrLCBvcHRpb25hbGx5IHVzaW5nIHN1ZG9cbiAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlTmFtZSAtIFRoZSBmaWxlIHRvIGRlbGV0ZVxuICogQHBhcmFtIHtJTGludXhTdWRvT3B0aW9uc30gb3B0aW9ucyAtIE9wdGlvbnMgZm9yIHN1ZG9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGV0ZUZpbGUoZmlsZU5hbWU6IHN0cmluZywgb3B0aW9uczogSUxpbnV4U3Vkb09wdGlvbnMgPSB7c3VkbzogZmFsc2V9KTogdm9pZCB7XG5cdGlmIChvcHRpb25zLnN1ZG8pIHtcblx0XHRyZXR1cm4gc3Vkb0RlbGV0ZUZpbGUoZmlsZU5hbWUsIG9wdGlvbnMpO1xuXHR9XG5cdHJldHVybiB1bmxpbmtTeW5jKGZpbGVOYW1lKTtcbn1cblxuLyoqXG4gKiBBc3luYyB3cml0ZSBhIGZpbGUgdG8gZGlzaywgb3B0aW9uYWxseSB1c2luZyBzdWRvXG4gKiBAcGFyYW0ge3N0cmluZ30gZmlsZU5hbWUgLSBUaGUgZmlsZSB0byB3cml0ZVxuICogQHBhcmFtIHtCdWZmZXJ9IGNvbnRlbnQgLSBUaGUgY29udGVudCB0byB3cml0ZVxuICogQHBhcmFtIHtJTGludXhTdWRvT3B0aW9uc30gb3B0aW9ucyAtIE9wdGlvbnMgZm9yIHN1ZG9cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFByb21pc2Ugb2Ygd3JpdGVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlRmlsZVByb21pc2UoZmlsZU5hbWU6IHN0cmluZywgY29udGVudDogQnVmZmVyLCBvcHRpb25zOiBJTGludXhTdWRvT3B0aW9ucyA9IHtzdWRvOiBmYWxzZX0pOiBQcm9taXNlPHZvaWQ+IHtcblx0aWYgKG9wdGlvbnMuc3Vkbykge1xuXHRcdHJldHVybiBzdWRvV3JpdGVGaWxlUHJvbWlzZShmaWxlTmFtZSwgY29udGVudCwgb3B0aW9ucyk7XG5cdH1cblx0cmV0dXJuIGZzUHJvbWlzZS53cml0ZUZpbGUoZmlsZU5hbWUsIGNvbnRlbnQpO1xufVxuXG4vKipcbiAqIEFzeW5jIHJlYWQgYSBmaWxlIGZyb20gZGlzaywgb3B0aW9uYWxseSB1c2luZyBzdWRvXG4gKiBAcGFyYW0ge3N0cmluZ30gZmlsZU5hbWUgLSBUaGUgZmlsZSB0byByZWFkXG4gKiBAcGFyYW0ge0lMaW51eFN1ZG9PcHRpb25zfSBvcHRpb25zIC0gT3B0aW9ucyBmb3Igc3Vkb1xuICogQHJldHVybnMge1Byb21pc2U8QnVmZmVyPn0gLSBQcm9taXNlIG9mIHRoZSBmaWxlIGNvbnRlbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRGaWxlUHJvbWlzZShmaWxlTmFtZTogc3RyaW5nLCBvcHRpb25zOiBJTGludXhTdWRvT3B0aW9ucyA9IHtzdWRvOiBmYWxzZX0pOiBQcm9taXNlPEJ1ZmZlcj4ge1xuXHRpZiAob3B0aW9ucy5zdWRvKSB7XG5cdFx0cmV0dXJuIHN1ZG9SZWFkRmlsZVByb21pc2UoZmlsZU5hbWUsIG9wdGlvbnMpO1xuXHR9XG5cdHJldHVybiBmc1Byb21pc2UucmVhZEZpbGUoZmlsZU5hbWUpO1xufVxuXG4vKipcbiAqIEFzeW5jIGRlbGV0ZSBhIGZpbGUgZnJvbSBkaXNrLCBvcHRpb25hbGx5IHVzaW5nIHN1ZG9cbiAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlTmFtZSAtIFRoZSBmaWxlIHRvIGRlbGV0ZVxuICogQHBhcmFtIHtJTGludXhTdWRvT3B0aW9uc30gb3B0aW9ucyAtIE9wdGlvbnMgZm9yIHN1ZG9cbiAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFByb21pc2Ugb2YgZGVsZXRlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVGaWxlUHJvbWlzZShmaWxlTmFtZTogc3RyaW5nLCBvcHRpb25zOiBJTGludXhTdWRvT3B0aW9ucyA9IHtzdWRvOiBmYWxzZX0pOiBQcm9taXNlPHZvaWQ+IHtcblx0aWYgKG9wdGlvbnMuc3Vkbykge1xuXHRcdHJldHVybiBzdWRvRGVsZXRlRmlsZVByb21pc2UoZmlsZU5hbWUsIG9wdGlvbnMpO1xuXHR9XG5cdHJldHVybiBmc1Byb21pc2UudW5saW5rKGZpbGVOYW1lKTtcbn1cbiJdfQ== |
| /// <reference types="node" /> | ||
| import { ILoggerLike } from '@avanio/logger-like'; | ||
| export declare function setSudoFileLogger(logger: ILoggerLike): void; | ||
| export interface ILinuxSudoOptions { | ||
| sudo?: boolean; | ||
| sudoUser?: string; | ||
| sudoPath?: string; | ||
| } | ||
| /** | ||
| * Write file with sudo and tee | ||
| */ | ||
| export declare function sudoWriteFile(fileName: string, content: Buffer, options: ILinuxSudoOptions): void; | ||
| /** | ||
| * Read file with sudo and cat | ||
| */ | ||
| export declare function sudoReadFile(fileName: string, options: ILinuxSudoOptions): Buffer; | ||
| /** | ||
| * Delete file with sudo and rm | ||
| */ | ||
| export declare function sudoDeleteFile(fileName: string, options: ILinuxSudoOptions): void; | ||
| /** | ||
| * Async write file with sudo and tee | ||
| */ | ||
| export declare function sudoWriteFilePromise(fileName: string, content: Buffer, options: ILinuxSudoOptions): Promise<void>; | ||
| /** | ||
| * Async read file with sudo and cat | ||
| */ | ||
| export declare function sudoReadFilePromise(fileName: string, options: ILinuxSudoOptions): Promise<Buffer>; | ||
| /** | ||
| * Async delete file with sudo and rm | ||
| */ | ||
| export declare function sudoDeleteFilePromise(fileName: string, options: ILinuxSudoOptions): Promise<void>; |
+91
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.sudoDeleteFilePromise = exports.sudoReadFilePromise = exports.sudoWriteFilePromise = exports.sudoDeleteFile = exports.sudoReadFile = exports.sudoWriteFile = exports.setSudoFileLogger = void 0; | ||
| const child_process_1 = require("child_process"); | ||
| let sudoFileLogger; | ||
| function setSudoFileLogger(logger) { | ||
| sudoFileLogger = logger; | ||
| } | ||
| exports.setSudoFileLogger = setSudoFileLogger; | ||
| function execFilePromise(cmd, args, input) { | ||
| return new Promise((resolve, reject) => { | ||
| var _a, _b; | ||
| const child = (0, child_process_1.execFile)(cmd, args, (error, stdout) => { | ||
| if (error) { | ||
| reject(error); | ||
| } | ||
| else { | ||
| resolve(Buffer.from(stdout)); | ||
| } | ||
| }); | ||
| if (input) { | ||
| (_a = child.stdin) === null || _a === void 0 ? void 0 : _a.write(input); | ||
| } | ||
| (_b = child.stdin) === null || _b === void 0 ? void 0 : _b.end(); | ||
| }); | ||
| } | ||
| function sudoArgs(args, options) { | ||
| if (process.platform === 'win32') { | ||
| throw new Error('sudo not supported on Windows'); | ||
| } | ||
| const sudoPath = options.sudoPath || '/usr/bin/sudo'; | ||
| if (options.sudoUser) { | ||
| return [sudoPath, '-n', '-U', options.sudoUser, ...args]; | ||
| } | ||
| return [sudoPath, '-n', ...args]; | ||
| } | ||
| /** | ||
| * Write file with sudo and tee | ||
| */ | ||
| function sudoWriteFile(fileName, content, options) { | ||
| const [cmd, ...args] = sudoArgs(['tee', fileName], options); | ||
| sudoFileLogger === null || sudoFileLogger === void 0 ? void 0 : sudoFileLogger.debug('sudoWriteFile:', cmd, args); | ||
| (0, child_process_1.execFileSync)(cmd, args, { input: content }); | ||
| } | ||
| exports.sudoWriteFile = sudoWriteFile; | ||
| /** | ||
| * Read file with sudo and cat | ||
| */ | ||
| function sudoReadFile(fileName, options) { | ||
| const [cmd, ...args] = sudoArgs(['cat', fileName], options); | ||
| sudoFileLogger === null || sudoFileLogger === void 0 ? void 0 : sudoFileLogger.debug('sudoReadFile:', cmd, args); | ||
| return (0, child_process_1.execFileSync)(cmd, args); | ||
| } | ||
| exports.sudoReadFile = sudoReadFile; | ||
| /** | ||
| * Delete file with sudo and rm | ||
| */ | ||
| function sudoDeleteFile(fileName, options) { | ||
| const [cmd, ...args] = sudoArgs(['rm', '-f', fileName], options); | ||
| sudoFileLogger === null || sudoFileLogger === void 0 ? void 0 : sudoFileLogger.debug('sudoDeleteFile:', cmd, args); | ||
| (0, child_process_1.execFileSync)(cmd, args); | ||
| } | ||
| exports.sudoDeleteFile = sudoDeleteFile; | ||
| /** | ||
| * Async write file with sudo and tee | ||
| */ | ||
| async function sudoWriteFilePromise(fileName, content, options) { | ||
| const [cmd, ...args] = sudoArgs(['tee', fileName], options); | ||
| sudoFileLogger === null || sudoFileLogger === void 0 ? void 0 : sudoFileLogger.debug('sudoWriteFilePromise:', cmd, args); | ||
| await execFilePromise(cmd, args, content); | ||
| } | ||
| exports.sudoWriteFilePromise = sudoWriteFilePromise; | ||
| /** | ||
| * Async read file with sudo and cat | ||
| */ | ||
| function sudoReadFilePromise(fileName, options) { | ||
| const [cmd, ...args] = sudoArgs(['cat', fileName], options); | ||
| sudoFileLogger === null || sudoFileLogger === void 0 ? void 0 : sudoFileLogger.debug('sudoReadFilePromise:', cmd, args); | ||
| return execFilePromise(cmd, args); | ||
| } | ||
| exports.sudoReadFilePromise = sudoReadFilePromise; | ||
| /** | ||
| * Async delete file with sudo and rm | ||
| */ | ||
| async function sudoDeleteFilePromise(fileName, options) { | ||
| const [cmd, ...args] = sudoArgs(['rm', '-f', fileName], options); | ||
| sudoFileLogger === null || sudoFileLogger === void 0 ? void 0 : sudoFileLogger.debug('sudoDeleteFilePromise:', cmd, args); | ||
| await execFilePromise(cmd, args); | ||
| } | ||
| exports.sudoDeleteFilePromise = sudoDeleteFilePromise; | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vkby5qcyIsInNvdXJjZVJvb3QiOiIuL3NyYy8iLCJzb3VyY2VzIjpbInN1ZG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQXFEO0FBR3JELElBQUksY0FBdUMsQ0FBQztBQUU1QyxTQUFnQixpQkFBaUIsQ0FBQyxNQUFtQjtJQUNwRCxjQUFjLEdBQUcsTUFBTSxDQUFDO0FBQ3pCLENBQUM7QUFGRCw4Q0FFQztBQUVELFNBQVMsZUFBZSxDQUFDLEdBQVcsRUFBRSxJQUFjLEVBQUUsS0FBYztJQUNuRSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFOztRQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFBLHdCQUFRLEVBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuRCxJQUFJLEtBQUssRUFBRTtnQkFDVixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDZDtpQkFBTTtnQkFDTixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQzdCO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLEtBQUssRUFBRTtZQUNWLE1BQUEsS0FBSyxDQUFDLEtBQUssMENBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsTUFBQSxLQUFLLENBQUMsS0FBSywwQ0FBRSxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFRRCxTQUFTLFFBQVEsQ0FBQyxJQUFjLEVBQUUsT0FBMEI7SUFDM0QsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRTtRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7S0FDakQ7SUFDRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLGVBQWUsQ0FBQztJQUNyRCxJQUFJLE9BQU8sQ0FB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QyxRQUFnQixFQUFFLE9BQTBCO0lBQ3ZGLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxLQUFLLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNELE1BQU0sZUFBZSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBSkQsc0RBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2V4ZWNGaWxlLCBleGVjRmlsZVN5bmN9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHtJTG9nZ2VyTGlrZX0gZnJvbSAnQGF2YW5pby9sb2dnZXItbGlrZSc7XG5cbmxldCBzdWRvRmlsZUxvZ2dlcjogSUxvZ2dlckxpa2UgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTdWRvRmlsZUxvZ2dlcihsb2dnZXI6IElMb2dnZXJMaWtlKSB7XG5cdHN1ZG9GaWxlTG9nZ2VyID0gbG9nZ2VyO1xufVxuXG5mdW5jdGlvbiBleGVjRmlsZVByb21pc2UoY21kOiBzdHJpbmcsIGFyZ3M6IHN0cmluZ1tdLCBpbnB1dD86IEJ1ZmZlcik6IFByb21pc2U8QnVmZmVyPiB7XG5cdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0Y29uc3QgY2hpbGQgPSBleGVjRmlsZShjbWQsIGFyZ3MsIChlcnJvciwgc3Rkb3V0KSA9PiB7XG5cdFx0XHRpZiAoZXJyb3IpIHtcblx0XHRcdFx0cmVqZWN0KGVycm9yKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJlc29sdmUoQnVmZmVyLmZyb20oc3Rkb3V0KSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0aWYgKGlucHV0KSB7XG5cdFx0XHRjaGlsZC5zdGRpbj8ud3JpdGUoaW5wdXQpO1xuXHRcdH1cblx0XHRjaGlsZC5zdGRpbj8uZW5kKCk7XG5cdH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElMaW51eFN1ZG9PcHRpb25zIHtcblx0c3Vkbz86IGJvb2xlYW47XG5cdHN1ZG9Vc2VyPzogc3RyaW5nO1xuXHRzdWRvUGF0aD86IHN0cmluZztcbn1cblxuZnVuY3Rpb24gc3Vkb0FyZ3MoYXJnczogc3RyaW5nW10sIG9wdGlvbnM6IElMaW51eFN1ZG9PcHRpb25zKSB7XG5cdGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSAnd2luMzInKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdzdWRvIG5vdCBzdXBwb3J0ZWQgb24gV2luZG93cycpO1xuXHR9XG5cdGNvbnN0IHN1ZG9QYXRoID0gb3B0aW9ucy5zdWRvUGF0aCB8fCAnL3Vzci9iaW4vc3Vkbyc7XG5cdGlmIChvcHRpb25zLnN1ZG9Vc2VyKSB7XG5cdFx0cmV0dXJuIFtzdWRvUGF0aCwgJy1uJywgJy1VJywgb3B0aW9ucy5zdWRvVXNlciwgLi4uYXJnc107XG5cdH1cblx0cmV0dXJuIFtzdWRvUGF0aCwgJy1uJywgLi4uYXJnc107XG59XG5cbi8qKlxuICogV3JpdGUgZmlsZSB3aXRoIHN1ZG8gYW5kIHRlZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3Vkb1dyaXRlRmlsZShmaWxlTmFtZTogc3RyaW5nLCBjb250ZW50OiBCdWZmZXIsIG9wdGlvbnM6IElMaW51eFN1ZG9PcHRpb25zKSB7XG5cdGNvbnN0IFtjbWQsIC4uLmFyZ3NdID0gc3Vkb0FyZ3MoWyd0ZWUnLCBmaWxlTmFtZV0sIG9wdGlvbnMpO1xuXHRzdWRvRmlsZUxvZ2dlcj8uZGVidWcoJ3N1ZG9Xcml0ZUZpbGU6JywgY21kLCBhcmdzKTtcblx0ZXhlY0ZpbGVTeW5jKGNtZCwgYXJncywge2lucHV0OiBjb250ZW50fSk7XG59XG5cbi8qKlxuICogUmVhZCBmaWxlIHdpdGggc3VkbyBhbmQgY2F0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdWRvUmVhZEZpbGUoZmlsZU5hbWU6IHN0cmluZywgb3B0aW9uczogSUxpbnV4U3Vkb09wdGlvbnMpOiBCdWZmZXIge1xuXHRjb25zdCBbY21kLCAuLi5hcmdzXSA9IHN1ZG9BcmdzKFsnY2F0JywgZmlsZU5hbWVdLCBvcHRpb25zKTtcblx0c3Vkb0ZpbGVMb2dnZXI/LmRlYnVnKCdzdWRvUmVhZEZpbGU6JywgY21kLCBhcmdzKTtcblx0cmV0dXJuIGV4ZWNGaWxlU3luYyhjbWQsIGFyZ3MpO1xufVxuXG4vKipcbiAqIERlbGV0ZSBmaWxlIHdpdGggc3VkbyBhbmQgcm1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1ZG9EZWxldGVGaWxlKGZpbGVOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IElMaW51eFN1ZG9PcHRpb25zKTogdm9pZCB7XG5cdGNvbnN0IFtjbWQsIC4uLmFyZ3NdID0gc3Vkb0FyZ3MoWydybScsICctZicsIGZpbGVOYW1lXSwgb3B0aW9ucyk7XG5cdHN1ZG9GaWxlTG9nZ2VyPy5kZWJ1Zygnc3Vkb0RlbGV0ZUZpbGU6JywgY21kLCBhcmdzKTtcblx0ZXhlY0ZpbGVTeW5jKGNtZCwgYXJncyk7XG59XG5cbi8qKlxuICogQXN5bmMgd3JpdGUgZmlsZSB3aXRoIHN1ZG8gYW5kIHRlZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3Vkb1dyaXRlRmlsZVByb21pc2UoZmlsZU5hbWU6IHN0cmluZywgY29udGVudDogQnVmZmVyLCBvcHRpb25zOiBJTGludXhTdWRvT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuXHRjb25zdCBbY21kLCAuLi5hcmdzXSA9IHN1ZG9BcmdzKFsndGVlJywgZmlsZU5hbWVdLCBvcHRpb25zKTtcblx0c3Vkb0ZpbGVMb2dnZXI/LmRlYnVnKCdzdWRvV3JpdGVGaWxlUHJvbWlzZTonLCBjbWQsIGFyZ3MpO1xuXHRhd2FpdCBleGVjRmlsZVByb21pc2UoY21kLCBhcmdzLCBjb250ZW50KTtcbn1cblxuLyoqXG4gKiBBc3luYyByZWFkIGZpbGUgd2l0aCBzdWRvIGFuZCBjYXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1ZG9SZWFkRmlsZVByb21pc2UoZmlsZU5hbWU6IHN0cmluZywgb3B0aW9uczogSUxpbnV4U3Vkb09wdGlvbnMpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuXHRjb25zdCBbY21kLCAuLi5hcmdzXSA9IHN1ZG9BcmdzKFsnY2F0JywgZmlsZU5hbWVdLCBvcHRpb25zKTtcblx0c3Vkb0ZpbGVMb2dnZXI/LmRlYnVnKCdzdWRvUmVhZEZpbGVQcm9taXNlOicsIGNtZCwgYXJncyk7XG5cdHJldHVybiBleGVjRmlsZVByb21pc2UoY21kLCBhcmdzKTtcbn1cblxuLyoqXG4gKiBBc3luYyBkZWxldGUgZmlsZSB3aXRoIHN1ZG8gYW5kIHJtXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdWRvRGVsZXRlRmlsZVByb21pc2UoZmlsZU5hbWU6IHN0cmluZywgb3B0aW9uczogSUxpbnV4U3Vkb09wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcblx0Y29uc3QgW2NtZCwgLi4uYXJnc10gPSBzdWRvQXJncyhbJ3JtJywgJy1mJywgZmlsZU5hbWVdLCBvcHRpb25zKTtcblx0c3Vkb0ZpbGVMb2dnZXI/LmRlYnVnKCdzdWRvRGVsZXRlRmlsZVByb21pc2U6JywgY21kLCBhcmdzKTtcblx0YXdhaXQgZXhlY0ZpbGVQcm9taXNlKGNtZCwgYXJncyk7XG59XG4iXX0= |
+2
-1
| { | ||
| "name": "@avanio/os-api-linux-utils", | ||
| "version": "0.0.3", | ||
| "version": "0.0.4", | ||
| "description": "", | ||
@@ -9,2 +9,3 @@ "main": "./dist/index.js", | ||
| "watch": "tsc -w", | ||
| "prepublishOnly": "npm run build", | ||
| "test": "mocha", | ||
@@ -11,0 +12,0 @@ "lint": "eslint src" |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
Empty package
Supply chain riskPackage does not contain any code. It may be removed, is name squatting, or the result of a faulty package publish.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
26472
1153.41%6
200%253
Infinity%3
200%