aboutsummaryrefslogtreecommitdiff
path: root/gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/MCAutoTranslationsExtension.kt
blob: c40c89b98e1d688622fe73f9cbd143dc6f2612c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package moe.nea.mcautotranslations.gradle

import org.gradle.api.Project
import org.gradle.api.file.SourceDirectorySet
import org.gradle.api.provider.Property
import org.gradle.api.tasks.SourceSet
import org.gradle.configurationcache.extensions.capitalized

abstract class MCAutoTranslationsExtension(private val project: Project) {
	abstract val translationFunction: Property<String>
	abstract val translationFunctionResolved: Property<String>

	fun collectTranslationsTaskFor(
		sourceSet: SourceSet,
		configure: CollectTranslations.() -> Unit = {}
	): CollectTranslations {
		val capName = if (sourceSet.name == "main") "" else sourceSet.name.capitalized()
		val taskName = "collect${capName}Translations"
		val task = project.tasks.findByName(taskName)?.let { it as CollectTranslations }
			?: project.tasks.create(taskName, CollectTranslations::class.java) {
				it.classes.from((sourceSet.extensions.findByName("kotlin") as SourceDirectorySet).classesDirectory)
			}
		configure(task)
		return task
	}
}