]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/Cli.java
Check if output type is supported by command
[signal-cli] / src / main / java / org / asamk / signal / Cli.java
index 9f7048adcd03e51a32f9d3d977f7ed2932b93ad4..f8e2e9ab63eafd95a2148f53da3822d137565d21 100644 (file)
@@ -39,7 +39,7 @@ import java.util.stream.Collectors;
 
 public class Cli {
 
-    private final static Logger logger = LoggerFactory.getLogger(Main.class);
+    private final static Logger logger = LoggerFactory.getLogger(Cli.class);
 
     private final Namespace ns;
 
@@ -65,8 +65,8 @@ public class Cli {
 
         parser.addArgument("-o", "--output")
                 .help("Choose to output in plain text or JSON")
-                .choices("plain-text", "json")
-                .setDefault("plain-text");
+                .type(Arguments.enumStringType(OutputType.class))
+                .setDefault(OutputType.PLAIN_TEXT);
 
         Subparsers subparsers = parser.addSubparsers().title("subcommands").dest("command");
 
@@ -91,6 +91,12 @@ public class Cli {
             return 1;
         }
 
+        OutputType outputType = ns.get("output");
+        if (!command.getSupportedOutputTypes().contains(outputType)) {
+            logger.error("Command doesn't support output type {}", outputType.toString());
+            return 1;
+        }
+
         String username = ns.getString("username");
 
         final boolean useDbus = ns.getBoolean("dbus");