package se.progic.javalab;
import java.util.List;
import java.util.concurrent.Callable;
import picocli.CommandLine.Command;
import picocli.CommandLine.Option;
import se.progic.javalab.QueueInfo.DataRow;
@Command(
name = "dstat",
mixinStandardHelpOptions = true,
version = "1.0.0"
)
public class Cli implements Callable<Integer> {
@Option(names = {"-u", "--url"}, required = true)
private String[] urls;
@Option(names = {"-n", "--username"}, required = true)
private String username;
@Option(names = {"-p", "--password"}, required = true)
private String password;
@Option(names = {"-f", "--filter"})
private String filter;
@Override
public Integer call() {
try {
final AmqClient amqClient = new AmqClient();
final String connectionString = amqClient.createConnectionString(urls);
final String result = amqClient.listQueues(connectionString, username, password);
final OutputParser outputParser = new OutputParser();
final List<DataRow> dataRows = outputParser.parseJson(result, filter);
outputParser.printOutput(dataRows);
return 0;
} catch (CliException e) {
System.err.println("Command failed with message: " + e.getMessage());
return 1;
}
}
}