create TypeScriptToLua Gradle task, and some Gradle cleanup / experiments

This commit is contained in:
Adam 2022-02-20 12:23:29 +01:00
parent d3c7abff95
commit 727836a031
3 changed files with 103 additions and 82 deletions

View file

@ -0,0 +1,43 @@
package dev.adamko.kafkatorio.task
import com.github.gradle.node.npm.task.NpmTask
import org.gradle.api.file.DirectoryProperty
import org.gradle.api.plugins.BasePlugin
import org.gradle.api.tasks.InputDirectory
import org.gradle.api.tasks.OutputFile
import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.PathSensitivity
import org.gradle.api.tasks.SkipWhenEmpty
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
abstract class TypescriptToLuaTask : NpmTask() {
@get:InputDirectory
@get:SkipWhenEmpty
@get:PathSensitive(PathSensitivity.RELATIVE)
abstract val sourceFiles: DirectoryProperty
@get:OutputFile
abstract val outputDirectory: DirectoryProperty
init {
super.setGroup(BasePlugin.BUILD_GROUP)
super.setDescription("Convert Typescript To Lua")
super.execOverrides { standardOutput = System.out }
super.npmCommand.set(listOf("run", "build"))
super.args.set(parseSpaceSeparatedArgs("-- --outDir $temporaryDir"))
super.ignoreExitValue.set(false)
super.doFirst("cleanTemporaryDir") {
project.delete(temporaryDir)
project.mkdir(temporaryDir)
}
super.doLast("syncTstlOutput") {
project.sync {
from(temporaryDir)
into(outputDirectory)
}
}
}
}