+ if (command instanceof LocalCommand localCommand) {
+ handleLocalCommand(localCommand, account, signalAccountFiles, commandHandler);
+ }
+
+ throw new UserErrorException("Command only works in multi-account mode");
+ }
+
+ private OutputWriter getOutputWriter(final Command command) throws UserErrorException {
+ final var outputTypeInput = ns.<OutputType>get("output");
+ final var outputType = outputTypeInput == null ? command.getSupportedOutputTypes()
+ .stream()
+ .findFirst()
+ .orElse(null) : outputTypeInput;
+ final var writer = new BufferedWriter(new OutputStreamWriter(System.out, IOUtils.getConsoleCharset()));
+ final var outputWriter = outputType == null
+ ? null
+ : outputType == OutputType.JSON ? new JsonWriterImpl(writer) : new PlainTextWriterImpl(writer);
+
+ if (outputWriter != null && !command.getSupportedOutputTypes().contains(outputType)) {
+ throw new UserErrorException("Command doesn't support output type " + outputType);
+ }
+ return outputWriter;
+ }
+
+ private SignalAccountFiles loadSignalAccountFiles() throws IOErrorException {
+ final File configPath;
+ final var config = ns.getString("config");
+ if (config != null) {
+ configPath = new File(config);
+ } else {
+ configPath = getDefaultConfigPath();