From 1827376df1afc4d543ace1a12673bab00219d892 Mon Sep 17 00:00:00 2001 From: Erin Schnabel Date: Fri, 14 Jan 2022 20:13:51 -0500 Subject: [PATCH] CLI: fix file handling in registry remove; more feedback --- .../io/quarkus/cli/RegistryAddCommand.java | 7 ++++- .../io/quarkus/cli/RegistryRemoveCommand.java | 26 +++++++++++-------- .../quarkus/cli/common/OutputOptionMixin.java | 3 +-- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/devtools/cli/src/main/java/io/quarkus/cli/RegistryAddCommand.java b/devtools/cli/src/main/java/io/quarkus/cli/RegistryAddCommand.java index 7ce770d85465f..284b57a0c638f 100644 --- a/devtools/cli/src/main/java/io/quarkus/cli/RegistryAddCommand.java +++ b/devtools/cli/src/main/java/io/quarkus/cli/RegistryAddCommand.java @@ -7,6 +7,7 @@ import io.quarkus.cli.registry.BaseRegistryCommand; import io.quarkus.registry.config.RegistriesConfig; +import io.quarkus.registry.config.RegistryConfig; import picocli.CommandLine; @CommandLine.Command(name = "add", sortOptions = false, showDefaultValues = true, mixinStandardHelpOptions = false, header = "Add a Quarkus extension registry", description = "%n" @@ -30,7 +31,6 @@ public Integer call() throws Exception { existingConfig = Files.exists(configYaml); } - registryClient.refreshRegistryCache(output); final RegistriesConfig.Mutable config; if (configYaml != null && !existingConfig) { // we're creating a new configuration for a new file @@ -38,6 +38,7 @@ public Integer call() throws Exception { } else { config = registryClient.resolveConfig().mutable(); } + registryClient.refreshRegistryCache(output); boolean persist = false; for (String registryId : registryIds) { @@ -45,6 +46,10 @@ public Integer call() throws Exception { } if (persist) { + output.printText("Configured registries:"); + for (RegistryConfig rc : config.getRegistries()) { + output.printText("- " + rc.getId()); + } if (configYaml != null) { config.persist(configYaml); } else { diff --git a/devtools/cli/src/main/java/io/quarkus/cli/RegistryRemoveCommand.java b/devtools/cli/src/main/java/io/quarkus/cli/RegistryRemoveCommand.java index 27b27916167ac..b98aa19629906 100644 --- a/devtools/cli/src/main/java/io/quarkus/cli/RegistryRemoveCommand.java +++ b/devtools/cli/src/main/java/io/quarkus/cli/RegistryRemoveCommand.java @@ -7,6 +7,7 @@ import io.quarkus.cli.registry.BaseRegistryCommand; import io.quarkus.registry.config.RegistriesConfig; +import io.quarkus.registry.config.RegistryConfig; import picocli.CommandLine; @CommandLine.Command(name = "remove", sortOptions = false, showDefaultValues = true, mixinStandardHelpOptions = false, header = "Remove a Quarkus extension registry", description = "%n" @@ -31,18 +32,13 @@ public Integer call() throws Exception { } final RegistriesConfig.Mutable config; - if (existingConfig) { - registryClient.refreshRegistryCache(output); - config = registryClient.resolveConfig().mutable(); - if (config.getSource().getFilePath() == null) { - output.error("Can only modify file-based configuration. Config source is " + config.getSource().describe()); - return CommandLine.ExitCode.SOFTWARE; - } + if (configYaml != null && !existingConfig) { + // we're creating a new configuration for a new file + config = RegistriesConfig.builder(); } else { - output.error("Can only remove registries from an existing configuration. The specified config file does not exist: " - + configYaml); - return CommandLine.ExitCode.SOFTWARE; + config = registryClient.resolveConfig().mutable(); } + registryClient.refreshRegistryCache(output); boolean persist = false; for (String registryId : registryIds) { @@ -50,7 +46,15 @@ public Integer call() throws Exception { } if (persist) { - config.persist(); + output.printText("Configured registries:"); + for (RegistryConfig rc : config.getRegistries()) { + output.printText("- " + rc.getId()); + } + if (configYaml != null) { + config.persist(configYaml); + } else { + config.persist(); + } } return CommandLine.ExitCode.OK; } diff --git a/devtools/cli/src/main/java/io/quarkus/cli/common/OutputOptionMixin.java b/devtools/cli/src/main/java/io/quarkus/cli/common/OutputOptionMixin.java index 402dcc83643ae..27047474844ca 100644 --- a/devtools/cli/src/main/java/io/quarkus/cli/common/OutputOptionMixin.java +++ b/devtools/cli/src/main/java/io/quarkus/cli/common/OutputOptionMixin.java @@ -12,7 +12,6 @@ import picocli.CommandLine; import picocli.CommandLine.Help.ColorScheme; import picocli.CommandLine.Model.CommandSpec; -import picocli.CommandLine.Spec; public class OutputOptionMixin implements MessageWriter { @@ -83,7 +82,7 @@ public boolean isAnsiEnabled() { return CommandLine.Help.Ansi.AUTO.enabled(); } - public void printText(String[] text) { + public void printText(String... text) { for (String line : text) { out().println(colorScheme().ansi().new Text(line, colorScheme())); }