Skip to content

Commit

Permalink
[WIP] Add config generator for custom rules
Browse files Browse the repository at this point in the history
  • Loading branch information
VitalyVPinchuk committed Aug 9, 2022
1 parent 6d39566 commit 991d229
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 11 deletions.
Expand Up @@ -35,7 +35,7 @@ class ConfigExporter(

private fun generateCustomRuleConfig() {
@Suppress("UnsafeCallOnNullableType")
val rootDir = File(arguments.classpath!!)
val rootDir = File(arguments.config!!)
val urls = rootDir.walkTopDown()
.filter { it.name.endsWith(".jar") }
.map { it.toURI().toURL() }
Expand Down
Expand Up @@ -2,7 +2,7 @@ package io.gitlab.arturbosch.detekt

import io.gitlab.arturbosch.detekt.DetektPlugin.Companion.CONFIG_DIR_NAME
import io.gitlab.arturbosch.detekt.DetektPlugin.Companion.CONFIG_FILE
import io.gitlab.arturbosch.detekt.invoke.ClasspathArgument
import io.gitlab.arturbosch.detekt.DetektPlugin.Companion.SOURCE_DIR_NAME
import io.gitlab.arturbosch.detekt.invoke.CliArgument
import io.gitlab.arturbosch.detekt.invoke.ConfigArgument
import io.gitlab.arturbosch.detekt.invoke.DetektInvoker
Expand All @@ -11,7 +11,6 @@ import io.gitlab.arturbosch.detekt.invoke.GenerateCustomRuleConfigArgument
import io.gitlab.arturbosch.detekt.invoke.InputArgument
import org.gradle.api.DefaultTask
import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.model.ObjectFactory
import org.gradle.api.provider.Property
import org.gradle.api.provider.Provider
import org.gradle.api.services.BuildService
Expand Down Expand Up @@ -68,24 +67,20 @@ abstract class DetektGenerateConfigTask : DefaultTask() {
abstract val source: ConfigurableFileCollection

private val defaultSourcePath = project.rootDir.toPath().resolve(SOURCE_DIR_NAME)

private val sourceToUse: File
private val sourceToUse: ConfigurableFileCollection
get() = if (source.isEmpty) {
defaultSourcePath.toFile()
project.objects.fileCollection().from(defaultSourcePath)
} else {
source.last()
source
}

private val projectRoot = project.rootDir

@get:Internal
internal val arguments: Provider<List<String>> = project.provider {
if (generateOnlyFromCustomRules.get()) {
listOf(
GenerateCustomRuleConfigArgument,
InputArgument(sourceToUse),
ClasspathArgument(projectRoot),
ConfigArgument(configurationToUse)
ConfigArgument(project.rootDir)
)
} else {
listOf(
Expand Down

0 comments on commit 991d229

Please sign in to comment.