use Profiler;
use Psr\Log\LoggerAwareTrait;
use Psr\Log\NullLogger;
+use Wikimedia\AtEase\AtEase;
/**
* Class used for executing shell commands
* Adds parameters to the command. All parameters are sanitized via Shell::escape().
* Null values are ignored.
*
- * @param string|string[] $args,...
+ * @param string|string[] ...$args
* @return $this
*/
- public function params( /* ... */ ) {
- $args = func_get_args();
+ public function params( ...$args ): Command {
if ( count( $args ) === 1 && is_array( reset( $args ) ) ) {
// If only one argument has been passed, and that argument is an array,
// treat it as a list of arguments
* Adds unsafe parameters to the command. These parameters are NOT sanitized in any way.
* Null values are ignored.
*
- * @param string|string[] $args,...
+ * @param string|string[] ...$args
* @return $this
*/
- public function unsafeParams( /* ... */ ) {
- $args = func_get_args();
+ public function unsafeParams( ...$args ): Command {
if ( count( $args ) === 1 && is_array( reset( $args ) ) ) {
// If only one argument has been passed, and that argument is an array,
// treat it as a list of arguments
* filesize (for ulimit -f), memory, time, walltime.
* @return $this
*/
- public function limits( array $limits ) {
+ public function limits( array $limits ): Command {
if ( !isset( $limits['walltime'] ) && isset( $limits['time'] ) ) {
// Emulate the behavior of old wfShellExec() where walltime fell back on time
// if the latter was overridden and the former wasn't
* @param string[] $env array of variable name => value
* @return $this
*/
- public function environment( array $env ) {
+ public function environment( array $env ): Command {
$this->env = $env;
return $this;
* @param string $method
* @return $this
*/
- public function profileMethod( $method ) {
+ public function profileMethod( $method ): Command {
$this->method = $method;
return $this;
* @param string|null $inputString
* @return $this
*/
- public function input( $inputString ) {
+ public function input( $inputString ): Command {
$this->inputString = is_null( $inputString ) ? null : (string)$inputString;
return $this;
* @param bool $yesno
* @return $this
*/
- public function includeStderr( $yesno = true ) {
+ public function includeStderr( $yesno = true ): Command {
$this->doIncludeStderr = $yesno;
return $this;
* @param bool $yesno
* @return $this
*/
- public function logStderr( $yesno = true ) {
+ public function logStderr( $yesno = true ): Command {
$this->doLogStderr = $yesno;
return $this;
* @param string|false $cgroup Absolute file path to the cgroup, or false to not use a cgroup
* @return $this
*/
- public function cgroup( $cgroup ) {
+ public function cgroup( $cgroup ): Command {
$this->cgroup = $cgroup;
return $this;
* @param int $restrictions
* @return $this
*/
- public function restrict( $restrictions ) {
+ public function restrict( $restrictions ): Command {
$this->restrictions |= $restrictions;
return $this;
*
* @return $this
*/
- public function whitelistPaths( array $paths ) {
+ public function whitelistPaths( array $paths ): Command {
// Default implementation is a no-op
return $this;
}
}
// clear get_last_error without actually raising an error
- // from https://secure.php.net/manual/en/function.error-get-last.php#113518
+ // from https://www.php.net/manual/en/function.error-get-last.php#113518
// TODO replace with clear_last_error when requirements are bumped to PHP7
set_error_handler( function () {
}, 0 );
- \Wikimedia\suppressWarnings();
+ AtEase::suppressWarnings();
trigger_error( '' );
- \Wikimedia\restoreWarnings();
+ AtEase::restoreWarnings();
restore_error_handler();
$readPipes = array_filter( $pipes, function ( $fd ) use ( $desc ) {