HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/linde-ai/html/node_modules/exec-buffer/index.js
'use strict';
const fs = require('fs');
const execa = require('execa');
const pFinally = require('p-finally');
const pify = require('pify');
const rimraf = require('rimraf');
const tempfile = require('tempfile');

const fsP = pify(fs);
const rmP = pify(rimraf);
const input = Symbol('inputPath');
const output = Symbol('outputPath');

module.exports = opts => {
	opts = Object.assign({}, opts);

	if (!Buffer.isBuffer(opts.input)) {
		return Promise.reject(new Error('Input is required'));
	}

	if (typeof opts.bin !== 'string') {
		return Promise.reject(new Error('Binary is required'));
	}

	if (!Array.isArray(opts.args)) {
		return Promise.reject(new Error('Arguments are required'));
	}

	const inputPath = opts.inputPath || tempfile();
	const outputPath = opts.outputPath || tempfile();

	opts.args = opts.args.map(x => x === input ? inputPath : x === output ? outputPath : x);

	const promise = fsP.writeFile(inputPath, opts.input)
		.then(() => execa(opts.bin, opts.args))
		.then(() => fsP.readFile(outputPath));

	return pFinally(promise, () => Promise.all([
		rmP(inputPath),
		rmP(outputPath)
	]));
};

module.exports.input = input;
module.exports.output = output;