From 21ccdefc4aea4c2439f7d41ece7d8216d8ba8b40 Mon Sep 17 00:00:00 2001 From: Christian Schneider Date: Wed, 3 Feb 2021 10:30:22 +0100 Subject: Code cleanup: Switch to new style varargs --- it.class | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) (limited to 'it.class') diff --git a/it.class b/it.class index b5343cd..dd62dd7 100644 --- a/it.class +++ b/it.class @@ -72,12 +72,11 @@ static function &cloneobj(&$object) /** * Append all arguments to a logfile (tab separated). Date will be added to filename and line * @param $name Name of logfile. Will be in log/ of service unless it starts with / - * @param $args... Varargs to log, will be tab separated. + * @param $args Varargs to log, will be tab separated. */ -static function log($name /* ... */) +static function log($name, ...$args) { - $args = func_get_args(); - $line = date("Y-m-d H:i:s") . "\t" . implode("\t", array_slice($args, 1)); + $line = date("Y-m-d H:i:s") . "\t" . implode("\t", $args); self::log_line($name, $line); return $line; } @@ -627,13 +626,12 @@ static function filter_keys($array, $keys, $p = array()) * {0} .. {n} quotes and inserts positional arguments * {-opts} array of opts => {value,true,false,null}: it::exec('ls {-opts}', ['-opts' => ["-l" => true]]); * @param $cmd Format string with {keywords} a la ET() - * @param $values varargs, contains key => val arrays for filling in cmd line. val=null expands to nothing + * @param $args varargs, contains key => val arrays for filling in cmd line. val=null expands to nothing * @return output of command. shell errors not detectable, consider it::system or see /www/server/log/error_log */ -static function exec(/* $cmd, $values1 = array(), ... */) +static function exec($cmd, ...$args) { - $args = func_get_args(); - $cmd = call_user_func_array('it::shell_command', $args); + $cmd = it::shell_command($cmd, ...$args); $before = gettimeofday(true); $result = EDC('noexec') ? "" : (string)shell_exec("set +o posix\n" . $cmd); @@ -649,10 +647,9 @@ static function exec(/* $cmd, $values1 = array(), ... */) * See ::exec above for usage * @return exit code of last command: zero for success, nonzero for failure */ -static function system(/* $cmd, $values1 = array(), ... */) +static function system($cmd, ...$args) { - $args = func_get_args(); - $cmd = call_user_func_array('it::shell_command', $args); + $cmd = it::shell_command($cmd, ...$args); $before = gettimeofday(true); if (!EDC('noexec')) @@ -670,13 +667,11 @@ static function system(/* $cmd, $values1 = array(), ... */) * Keywords {keyword} are replace a la ET(), * {-opts} array of opts => {value,true,false,null}: it::exec('ls {-opts}', ['-opts' => ["-l" => true]]); * @param $cmd Format string with {keywords} replace a la ET() - * @param $values (zero, one or more arrays can be passed) + * @param $args (zero, one or more arrays can be passed) * @return output of command. shell errors not detectable, see error_log in /www/server/log */ -static function shell_command(/* $cmd, $values1 = array(), ... */) +static function shell_command($cmd, ...$args) { - $args = func_get_args(); - $cmd = array_shift($args); $values = array(); # Merge values into one array @@ -686,10 +681,10 @@ static function shell_command(/* $cmd, $values1 = array(), ... */) # for escapeshellarg in it::_exec_quotevalue $oldlocale = setlocale(LC_CTYPE, 0); setlocale(LC_CTYPE, 'de_CH'); - foreach (it::match('({(-?)([a-z0-9]\w*)})', $cmd, array('all' => true)) as $tags) + foreach (it::match('({(-?)([a-z0-9]\w*)})', $cmd, ['all' => true]) as $tags) { list($tag, $option, $key) = $tags; - $parts = array(); + $parts = []; if ($option) { @@ -734,9 +729,9 @@ static function _exec_quotevalue($value, $errmsg = "") * @params see it::exec() * @see it::exec, /opt/ultra/bin/cdist */ -static function cexec(/* $cmd, $values1 = array(), ... */) +static function cexec($cmd, ...$args) { - return it::exec('cdist -c {CMD}', array('CMD' => call_user_func_array('it::shell_command', func_get_args()))); + return it::exec('cdist -c {cmd}', ['cmd' => it::shell_command($cmd, ...$args)]); } -- cgit v1.2.3