com.zegreatrob.tools.digger.DiggerExtension.kt Maven / Gradle / Ivy
package com.zegreatrob.tools.digger
import com.zegreatrob.tools.adapter.git.GitAdapter
import com.zegreatrob.tools.digger.core.DiggerCore
import com.zegreatrob.tools.digger.core.MessageDigger
import org.gradle.api.model.ObjectFactory
import org.gradle.api.provider.Property
import org.gradle.api.tasks.Input
import org.gradle.kotlin.dsl.property
import java.io.File
open class DiggerExtension(objectFactory: ObjectFactory) {
@Input
var label = objectFactory.property()
@Input
var workingDirectory = objectFactory.property()
@Input
var majorRegex: Property = objectFactory.property().convention(MessageDigger.Defaults.majorRegex)
@Input
var minorRegex: Property = objectFactory.property().convention(MessageDigger.Defaults.minorRegex)
@Input
var patchRegex: Property = objectFactory.property().convention(MessageDigger.Defaults.patchRegex)
@Input
var noneRegex: Property = objectFactory.property().convention(MessageDigger.Defaults.noneRegex)
@Input
var storyIdRegex: Property = objectFactory.property().convention(MessageDigger.Defaults.storyIdRegex)
@Input
var easeRegex: Property = objectFactory.property().convention(MessageDigger.Defaults.easeRegex)
@Input
var tagRegex: Property = objectFactory.property().convention(DiggerCore.Defaults.tagRegex)
private val gitWrapper get() = GitAdapter(workingDirectory.get().absolutePath)
private val core
get() = DiggerCore(
label = label.get().ifBlank { null },
tagRegex = tagRegex.get(),
gitWrapper = gitWrapper,
messageDigger = MessageDigger(
majorRegex = majorRegex.get(),
minorRegex = minorRegex.get(),
patchRegex = patchRegex.get(),
noneRegex = noneRegex.get(),
storyIdRegex = storyIdRegex.get(),
easeRegex = easeRegex.get(),
),
)
fun allContributionData() = core.allContributionData()
fun currentContributionData() = core.currentContributionData()
fun headId(): String = gitWrapper.headCommitId()
}