set up tstl factorio mod, and auto deploy stuff. A bit of mucking around with kotlin/js & dukat but it didn't go anywhere. Add a license.
This commit is contained in:
parent
fb80ca3f79
commit
17b4fc3b9a
47 changed files with 32006 additions and 112 deletions
|
|
@ -1,28 +1,22 @@
|
|||
import com.github.gradle.node.npm.task.NpmTask
|
||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
|
||||
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
|
||||
|
||||
plugins {
|
||||
base
|
||||
id("com.github.node-gradle.node")
|
||||
id("dev.adamko.factoriowebmap.archetype.node")
|
||||
}
|
||||
|
||||
group = "${rootProject.group}.mod"
|
||||
version = rootProject.version
|
||||
val projectId: String by project.extra
|
||||
|
||||
|
||||
val tsSrcDir = layout.projectDirectory.dir("src/main/typescript")
|
||||
val modBuildDir = layout.buildDirectory.dir(projectId).get()
|
||||
|
||||
node {
|
||||
download.set(true)
|
||||
version.set("14.18.0")
|
||||
|
||||
nodeProjectDir.set(layout.projectDirectory.dir("src"))
|
||||
|
||||
distBaseUrl.set(null as String?) // set root dependencyResolutionManagement
|
||||
nodeProjectDir.set(tsSrcDir)
|
||||
}
|
||||
|
||||
val projectId = rootProject.name + "-" + project.name
|
||||
val modBuildDir = layout.buildDirectory.dir(projectId).get()
|
||||
//val tsSrcDir = layout.projectDirectory.dir("src")
|
||||
|
||||
val tstlTask = tasks.register<NpmTask>("tstl") {
|
||||
val tstlTask = tasks.register<NpmTask>("typescriptToLua") {
|
||||
description = "Typescript To Lua"
|
||||
group = projectId
|
||||
|
||||
|
|
@ -30,15 +24,25 @@ val tstlTask = tasks.register<NpmTask>("tstl") {
|
|||
|
||||
execOverrides { standardOutput = System.out }
|
||||
|
||||
npmCommand.set(listOf("run", "build"))
|
||||
npmCommand.set(listOf(
|
||||
"run",
|
||||
"build",
|
||||
// "--workspace=factorio-web-map-mod",
|
||||
))
|
||||
|
||||
val outputDir = modBuildDir.dir("tstl")
|
||||
args.set(parseSpaceSeparatedArgs("-- --outDir $outputDir"))
|
||||
inputs.dir(node.nodeProjectDir)
|
||||
|
||||
val outputDir = modBuildDir.dir("typescriptToLua")
|
||||
outputs.dir(outputDir)
|
||||
args.set(parseSpaceSeparatedArgs("-- --outDir $outputDir"))
|
||||
// args.set(listOf(
|
||||
// "--",
|
||||
// "--outDir $outputDir",
|
||||
// "--workspace=factorio-web-map-mod",
|
||||
// ))
|
||||
|
||||
ignoreExitValue.set(false)
|
||||
// workingDir.set(tsSrcDir.asFile)
|
||||
inputs.dir(node.nodeProjectDir)
|
||||
// inputs.dir("node_modules")
|
||||
// inputs.dir(fileTree("src"))
|
||||
// inputs.files(
|
||||
|
|
@ -56,18 +60,62 @@ val modPackageTask = tasks.register<Zip>("package") {
|
|||
|
||||
dependsOn(tstlTask)
|
||||
|
||||
from(layout.projectDirectory.dir("src")) {
|
||||
exclude("*.ts")
|
||||
into(rootProject.name)
|
||||
}
|
||||
from(tstlTask) {
|
||||
into(rootProject.name)
|
||||
}
|
||||
from(
|
||||
layout.projectDirectory.dir("src/main/resources/mod-data"),
|
||||
rootProject.layout.projectDirectory.file("LICENSE"),
|
||||
tstlTask,
|
||||
)
|
||||
|
||||
into(rootProject.name)
|
||||
|
||||
// Factorio required format is:
|
||||
// - filename: `mod-name_version.zip`
|
||||
// - zip contains dir `mod-name`
|
||||
archiveFileName.set("${rootProject.name}_${rootProject.version}.zip")
|
||||
destinationDirectory.set(modBuildDir.dir("dist"))
|
||||
|
||||
}
|
||||
|
||||
tasks.build { dependsOn(tstlTask, modPackageTask) }
|
||||
//tasks.build { dependsOn(tstlTask, modPackageTask) }
|
||||
|
||||
val copyModToServerTask = tasks.register<Copy>("copyModToServer") {
|
||||
description = "Copy the mod to the Factorio Docker server"
|
||||
group = projectId
|
||||
|
||||
dependsOn(modPackageTask)
|
||||
|
||||
from(modPackageTask)
|
||||
into(layout.projectDirectory.dir("src/test/resources/server/data/mods").asFile)
|
||||
}
|
||||
|
||||
val copyModToClientTask = tasks.register<Copy>("copyModToClient") {
|
||||
description = "Copy the mod to the Factorio client"
|
||||
group = projectId
|
||||
|
||||
dependsOn(modPackageTask)
|
||||
|
||||
from(modPackageTask)
|
||||
into("""D:\Users\Adam\AppData\Roaming\Factorio\mods""")
|
||||
}
|
||||
|
||||
val serverRestartTask = tasks.register<Exec>("serverRestart") {
|
||||
group = projectId
|
||||
|
||||
workingDir = layout.projectDirectory.dir("src/test/resources/server/").asFile
|
||||
commandLine = parseSpaceSeparatedArgs("docker-compose restart")
|
||||
}
|
||||
|
||||
tasks.register<Exec>("serverStop") {
|
||||
group = projectId
|
||||
|
||||
workingDir = layout.projectDirectory.dir("src/test/resources/server/").asFile
|
||||
commandLine = parseSpaceSeparatedArgs("docker-compose stop")
|
||||
}
|
||||
|
||||
val launch = tasks.register("modLauncher") {
|
||||
group = projectId
|
||||
dependsOn(
|
||||
copyModToServerTask,
|
||||
copyModToClientTask,
|
||||
serverRestartTask,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue