aboutsummaryrefslogtreecommitdiff
path: root/gradle-plugin/src/main/kotlin/moe
diff options
context:
space:
mode:
Diffstat (limited to 'gradle-plugin/src/main/kotlin/moe')
-rw-r--r--gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/MCAutoTranslationsExtension.kt7
-rw-r--r--gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/MCAutoTranslationsGradlePlugin.kt9
-rw-r--r--gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/utils.kt15
3 files changed, 27 insertions, 4 deletions
diff --git a/gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/MCAutoTranslationsExtension.kt b/gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/MCAutoTranslationsExtension.kt
index 7367056..726145e 100644
--- a/gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/MCAutoTranslationsExtension.kt
+++ b/gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/MCAutoTranslationsExtension.kt
@@ -1,7 +1,8 @@
package moe.nea.mcautotranslations.gradle
-abstract class MCAutoTranslationsExtension {
-
- fun translationFunction(name: String) {} // TODO: actual config
+import org.gradle.api.provider.Property
+abstract class MCAutoTranslationsExtension {
+ abstract val translationFunction: Property<String>
+ abstract val translationFunctionResolved: Property<String>
}
diff --git a/gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/MCAutoTranslationsGradlePlugin.kt b/gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/MCAutoTranslationsGradlePlugin.kt
index 0e8004a..bc7ca3d 100644
--- a/gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/MCAutoTranslationsGradlePlugin.kt
+++ b/gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/MCAutoTranslationsGradlePlugin.kt
@@ -21,7 +21,14 @@ class MCAutoTranslationsGradlePlugin : KotlinCompilerPluginSupportPlugin {
compileOnly(BuildConfig.ANNOTATIONS_GROUP + ":" + BuildConfig.ANNOTATIONS_ARTIFACT + ":" + BuildConfig.ANNOTATIONS_VERSION)
}
return project.provider {
- listOf() // TODO: add plugin options from extension in here
+ listOf(
+ SubpluginOption(BuildConfig.PLUGIN_OPTION_RESOLVED_FUNCTION,
+ validateFunctionName("mcAutoTranslations.translationFunctionResolved",
+ extension.translationFunctionResolved)
+ ),
+ SubpluginOption(BuildConfig.PLUGIN_OPTION_TRANSLATE_FUNCTION,
+ validateFunctionName("mcAutoTranslations.translationFunction",
+ extension.translationFunction)))
}
}
diff --git a/gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/utils.kt b/gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/utils.kt
new file mode 100644
index 0000000..c0218af
--- /dev/null
+++ b/gradle-plugin/src/main/kotlin/moe/nea/mcautotranslations/gradle/utils.kt
@@ -0,0 +1,15 @@
+package moe.nea.mcautotranslations.gradle
+
+import org.gradle.api.provider.Property
+
+internal fun validateFunctionName(origin: String, property: Property<String>): Lazy<String> = lazy {
+ property.finalizeValueOnRead()
+ require(property.isPresent) {
+ "Function property $origin has not been set yet."
+ }
+ val name = property.get()
+ require(name.matches(Regex("^([a-z0-9_]+\\.)+[a-z0-9_A-Z]+$"))) {
+ "'$name' is not a valid function name. Make sure to set $origin to a valid value."
+ }
+ name
+}