@Override
    public Integer doCall() throws Exception {
        List<Row> rows = new ArrayList<>();

        JsonObject plugins = loadConfig().getMap("plugins");
        plugins.forEach((key, value) -> {
            JsonObject details = (JsonObject) value;

            String name = details.getStringOrDefault("name", key);
            String command = details.getStringOrDefault("command", name);
            String dependency = details.getStringOrDefault("dependency",
                    "org.apache.camel:camel-jbang-plugin-%s".formatted(command));
            String description
                    = details.getStringOrDefault("description", "Plugin %s called with command %s".formatted(name, command));

            rows.add(new Row(name, command, dependency, description));
        });

        printRows(rows);

        if (all) {
            rows.clear();
            for (PluginType camelPlugin : PluginType.values()) {
                if (plugins.get(camelPlugin.getName()) == null) {
                    String dependency = "org.apache.camel:camel-jbang-plugin-%s".formatted(camelPlugin.getCommand());
                    rows.add(new Row(
                            camelPlugin.getName(), camelPlugin.getCommand(), dependency,
                            camelPlugin.getDescription()));
                }
            }

            if (!rows.isEmpty()) {
                printer().println();
                printer().println("Supported plugins:");
                printer().println();

                printRows(rows);
            }
        }

        return 0;
    }
@Test
    public void shouldGetEmptyPlugins() throws Exception {
        PluginGet command = new PluginGet(new CamelJBangMain().withPrinter(printer));
        command.doCall();

        Assertions.assertEquals("", printer.getOutput());
    }