Files
kotlin-fork/plugins/kapt3/kapt3-cli/src/help.kt
T
nikita.movshin 65244b4bea Update copyright.
Change the copyright from "JetBrains s.r.o." to
"JetBrains s.r.o. and Kotlin Project contributors"
Update only 2 lines copyright.
2019-04-23 20:09:22 +03:00

44 lines
1.5 KiB
Kotlin

/*
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.kapt.cli
import org.jetbrains.kotlin.kapt.cli.CliToolOption.Format.*
internal fun printHelp() {
class OptionToRender(nameArgs: String, val description: String) {
val nameArgs = nameArgs.trim()
fun render(width: Int) = " " + nameArgs + " ".repeat(width - nameArgs.length) + description
}
val options = KaptCliOption.values()
.filter { it.cliToolOption != null }
.map { OptionToRender(it.nameArgs(), it.description) }
val optionNameColumnWidth = options.asSequence().map { it.nameArgs.length }.max()!! + 2
val renderedOptions = options.joinToString("\n|") { it.render(optionNameColumnWidth) }
val message = """
|kapt: Run annotation processing over the specified Kotlin source files.
|Usage: kapt <options> <source files>
|Options related to annotation processing:
|$renderedOptions
|You can also pass all valid Kotlin compiler options.
|Run 'kotlinc -help' to show them.
""".trimMargin()
println(message)
}
private fun KaptCliOption.nameArgs(): String {
val cliToolOption = this.cliToolOption!!
return when (cliToolOption.format) {
FLAG -> cliToolOption.name + "=<true|false>"
VALUE -> cliToolOption.name + "=" + valueDescription
KEY_VALUE -> cliToolOption.name + valueDescription
}
}