big ol' refactor of the Gradle Factorio Mod

- handle launching in multiple OSes
- specific tasks for specific mod operations
- extension object for settings
- ground work for multiple mods
This commit is contained in:
Adam 2022-12-18 01:40:40 +01:00
parent 2c9c442595
commit 9f2b9cbd5c
33 changed files with 1098 additions and 244 deletions

View file

@ -2,40 +2,32 @@ package kafkatorio.tasks
import com.github.gradle.node.npm.task.NpmTask
import javax.inject.Inject
import org.gradle.api.file.ConfigurableFileTree
import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.file.DirectoryProperty
import org.gradle.api.file.FileSystemOperations
import org.gradle.api.plugins.BasePlugin
import org.gradle.api.tasks.CacheableTask
import org.gradle.api.tasks.IgnoreEmptyDirectories
import org.gradle.api.tasks.InputDirectory
import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.PathSensitivity
import org.gradle.api.tasks.SkipWhenEmpty
import org.gradle.api.tasks.TaskAction
import org.gradle.api.tasks.*
import org.gradle.work.NormalizeLineEndings
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
@CacheableTask
abstract class TypescriptToLuaTask @Inject constructor(
abstract class TypeScriptToLuaTask @Inject constructor(
private val fs: FileSystemOperations
) : NpmTask() {
@get:InputDirectory
@get:InputFiles
@get:SkipWhenEmpty
@get:PathSensitive(PathSensitivity.RELATIVE)
@get:NormalizeLineEndings
@get:IgnoreEmptyDirectories
abstract val sourceFiles: DirectoryProperty
abstract val sourceFiles: ConfigurableFileCollection
@get:OutputDirectory
abstract val outputDirectory: DirectoryProperty
init {
super.setGroup(BasePlugin.BUILD_GROUP)
super.setDescription("Convert Typescript To Lua")
super.setDescription("Convert TypeScript To Lua")
super.execOverrides { standardOutput = System.out }
super.npmCommand.set(listOf("run", "build"))
super.ignoreExitValue.set(false)