Package software.amazon.smithy.cli
Class Cli
- java.lang.Object
-
- software.amazon.smithy.cli.Cli
-
public final class Cli extends java.lang.Object
This class provides a basic CLI abstraction.Why are we not using a library for this? Because parsing command line options isn't difficult, we don't need to take a dependency, this code uses no reflection to improve startup time. We can control exactly what CLI features are supported in case we want to migrate to a library or event a different language.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
colorFormatter(ColorFormatter colorFormatter)
int
run(java.lang.String[] args)
Execute the command line using the given arguments.void
stderr(CliPrinter stderrPrinter)
void
stdout(CliPrinter stdoutPrinter)
-
-
-
Constructor Detail
-
Cli
public Cli(Command command, java.lang.ClassLoader classLoader)
Creates a new CLI with the given name.- Parameters:
command
- CLI command to run.classLoader
- ClassLoader to use when invoking commands.
-
-
Method Detail
-
run
public int run(java.lang.String[] args)
Execute the command line using the given arguments.- Parameters:
args
- Arguments to parse.- Returns:
- Returns the exit code.
- Throws:
CliError
- on error.
-
colorFormatter
public void colorFormatter(ColorFormatter colorFormatter)
-
stdout
public void stdout(CliPrinter stdoutPrinter)
-
stderr
public void stderr(CliPrinter stderrPrinter)
-
-