package mihon.buildlogic.tasks import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.tasks.TaskProvider private val emptyResourcesElement = "\\s*|".toRegex() fun Project.getLocalesConfigTask(): TaskProvider { return tasks.register("generateLocalesConfig") { val locales = fileTree("$projectDir/src/commonMain/moko-resources/") .matching { include("**/strings.xml") } .filterNot { it.readText().contains(emptyResourcesElement) } .map { it.parentFile.name .replace("base", "en") .replace("-r", "-") .replace("+", "-") .takeIf(String::isNotBlank) ?: "en" } .sorted() .joinToString("\n") { "| " } val content = """ | | $locales | """.trimMargin() file("$projectDir/src/androidMain/res/xml/locales_config.xml").apply { parentFile.mkdirs() writeText(content) } } }