All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.zegreatrob.tools.digger.DiggerExtension.kt Maven / Gradle / Ivy

There is a newer version: 1.5.10
Show newest version
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()
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy