Это имеет два аспекта:
- Как получить текст баннера из приложения?
- Как отобразить цвета и стили ANSI?
Вы можете получить баннер из справочного сообщения об использовании, либо с помощью new CommandLine(new App()).getCommandSpec().usageHelpMessage().header()
, либо введя аннотированное поле CommandSpec
*1011* в свое приложение.
Чтобы отобразить стили ANSI, используйте CommandLine.Help.Ansi.AUTO.string(line)
для каждой строки баннера.
Собираем все вместе:
@Command(name = "git-star", header = {
"@|green _ _ _ |@",
"@|green __ _(_) |_ __| |_ __ _ _ _ |@",
"@|green / _` | | _(_-< _/ _` | '_| |@",
"@|green \\__, |_|\\__/__/\\__\\__,_|_| |@",
"@|green |___/ |@"},
description = "Shows GitHub stars for a project",
mixinStandardHelpOptions = true, version = "git-star 0.1")
class GitStar implements Runnable {
@Option(names = "-c")
int count;
@Spec CommandSpec spec;
// prints banner every time the command is invoked
public void run() {
String[] banner = new CommandLine(new GitStar())
.getCommandSpec().usageHelpMessage().header();
// or: String[] banner = this.spec.usageHelpMessage().header();
for (String line : banner) {
System.out.println(CommandLine.Help.Ansi.AUTO.string(line));
}
// business logic here...
}
public static void main(String[] args) {
CommandLine.run(new GitStar(), args);
}
}