From 3778fee6d1b7c267a1506ce8a4146e00c0c0ebfa Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Wed, 18 Oct 2023 14:18:28 +0200 Subject: [PATCH] system: restructure previous a little --- src/sbin/pluginctl | 50 +++++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/src/sbin/pluginctl b/src/sbin/pluginctl index 9ce98c94d..65cc1ce98 100755 --- a/src/sbin/pluginctl +++ b/src/sbin/pluginctl @@ -216,9 +216,15 @@ if (isset($opts['h'])) { } elseif (isset($opts['S'])) { $services = get_all_services(isset($args[0]) ? $args[0] : '', isset($args[1]) ? $args[1] : ''); echo json_encode($services, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT) . PHP_EOL; -} elseif (!empty($args[0]) && isset($opts['s'])) { +} elseif (isset($opts['s'])) { + $results = []; $services = get_all_services(isset($args[0]) ? $args[0] : '', isset($args[2]) ? $args[2] : ''); foreach ($services as $service) { + if (empty($args[0])) { + $results[$service['name']] = 1; + continue; + } + $filter = isset($service['id']) ? ['id' => $service['id']] : []; $act = isset($args[1]) ? $args[1] : ''; $name = $service['name']; @@ -244,28 +250,30 @@ if (isset($opts['h'])) { break; } } + + if (empty($args[0])) { + ksort($results); + + foreach ($results as $key => $value) { + echo "$key\n"; + } + } } elseif (empty($args[0])) { // no arguments, list plugins of selected type $results = []; - if (isset($opts['s'])) { - foreach (plugins_services() as $service) { - $results[$service['name']] = 1; + foreach (plugins_scan() as $name => $path) { + try { + include_once $path; + } catch (\Error $e) { + error_log($e); } - } else { - foreach (plugins_scan() as $name => $path) { - try { - include_once $path; - } catch (\Error $e) { - error_log($e); - } - $func = sprintf('%s_configure', $name); - if (function_exists($func)) { - foreach ($func() as $when => $worker) { - if (empty($results[$when])) { - $results[$when] = []; - } - $results[$when][] = $name; + $func = sprintf('%s_configure', $name); + if (function_exists($func)) { + foreach ($func() as $when => $worker) { + if (empty($results[$when])) { + $results[$when] = []; } + $results[$when][] = $name; } } } @@ -273,11 +281,7 @@ if (isset($opts['h'])) { ksort($results); foreach ($results as $key => $value) { - if (is_array($value)) { - echo "$key => " . implode(',', $value) . "\n"; - } else { - echo "$key\n"; - } + echo "$key => " . implode(', ', $value) . "\n"; } } else { /* second argument is hook */