Skip to content

Commit

Permalink
Display dynamic --jvm-target values when using --help flag
Browse files Browse the repository at this point in the history
This will now print values supported by the embedded Kotlin version and
won't have to be updated manually anymore.
  • Loading branch information
3flex committed Apr 7, 2022
1 parent ed8b089 commit 7f86eb9
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 3 deletions.
Expand Up @@ -2,6 +2,7 @@ package io.gitlab.arturbosch.detekt.cli

import com.beust.jcommander.IStringConverter
import com.beust.jcommander.ParameterException
import org.jetbrains.kotlin.config.JvmTarget
import org.jetbrains.kotlin.config.LanguageVersion
import java.io.File
import java.net.URL
Expand Down Expand Up @@ -50,6 +51,11 @@ class LanguageVersionConverter : IStringConverter<LanguageVersion> {
checkNotNull(LanguageVersion.fromFullVersionString(value)) { "Invalid value passed to --language-version" }
}

class JvmTargetConverter : IStringConverter<JvmTarget> {
override fun convert(value: String): JvmTarget =
checkNotNull(JvmTarget.fromString(value)) { "Invalid value passed to --jvm-target" }
}

class ClasspathResourceConverter : IStringConverter<URL> {
override fun convert(resource: String): URL {
val relativeResource = if (resource.startsWith("/")) resource else "/$resource"
Expand Down
Expand Up @@ -188,10 +188,11 @@ class CliArgs {

@Parameter(
names = ["--jvm-target"],
converter = JvmTargetConverter::class,
description = "EXPERIMENTAL: Target version of the generated JVM bytecode that was generated during " +
"compilation and is now being used for type resolution (1.6, 1.8, 9, 10, 11, 12, 13, 14, 15, 16 or 17)"
"compilation and is now being used for type resolution"
)
var jvmTarget: String = JvmTarget.DEFAULT.description
var jvmTarget: JvmTarget = JvmTarget.DEFAULT

@Parameter(
names = ["--version"],
Expand Down
Expand Up @@ -65,7 +65,7 @@ internal fun CliArgs.createSpec(output: Appendable, error: Appendable): Processi
}

compiler {
jvmTarget = args.jvmTarget
jvmTarget = args.jvmTarget.toString()
languageVersion = args.languageVersion?.versionString
classpath = args.classpath?.trim()
}
Expand Down

0 comments on commit 7f86eb9

Please sign in to comment.