41 lines
706 B
PHP
41 lines
706 B
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace Bass\Webclient\Libs;
|
|
|
|
class ExecLib
|
|
{
|
|
/**
|
|
* @return array{0:bool,1:array}
|
|
*/
|
|
public static function run(
|
|
string $bin,
|
|
string $to,
|
|
string $subject,
|
|
string $data
|
|
): array {
|
|
$cmd = sprintf(
|
|
"%s %s %s %s",
|
|
escapeshellcmd($bin),
|
|
escapeshellarg($to),
|
|
escapeshellarg($subject),
|
|
escapeshellarg($data)
|
|
);
|
|
|
|
exec($cmd, $output, $exitCode);
|
|
|
|
if ($exitCode !== 0) {
|
|
return [
|
|
false,
|
|
[
|
|
'code' => 'EXEC_FAILED',
|
|
'message' => 'Command execution failed',
|
|
'bin' => $bin,
|
|
'status' => $exitCode
|
|
]
|
|
];
|
|
}
|
|
return [true, []];
|
|
}
|
|
}
|