in src/main/kotlin/com/uber/nanoscope/Main.kt [328:354]
fun main(args: Array<String>) {
val subcommandOptions = Subcommand.values().map { it.name.toLowerCase() }
var usageMessage = "usage: nanoscope $subcommandOptions\n"
Subcommand.values().forEach {
usageMessage += " ${it.usage}\n"
}
if (args.isEmpty()) {
println(usageMessage)
exitProcess(1)
}
val subcommandString = args[0]
if (subcommandString in listOf("-h", "--help")) {
println(usageMessage)
exitProcess(0)
}
try {
Subcommand.valueOf(subcommandString.toUpperCase())
} catch (e: IllegalArgumentException) {
println("Subcommand must be one of $subcommandOptions. Found: $subcommandString")
println()
println(usageMessage)
exitProcess(1)
}.handle(args.drop(1))
}