diff options
Diffstat (limited to 'gradle-plugin/src/main/kotlin/moe')
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 +} |