2021-12-01 18:12:34 +01:00
|
|
|
import dev.adamko.kafkatorio.gradle.asConsumer
|
|
|
|
|
import dev.adamko.kafkatorio.gradle.factorioModAttributes
|
2021-12-03 09:04:18 +01:00
|
|
|
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
|
2021-12-01 16:57:46 +01:00
|
|
|
|
|
|
|
|
plugins {
|
2021-12-02 00:54:15 +01:00
|
|
|
id("dev.adamko.kafkatorio.infra.docker-compose")
|
2021-12-01 16:57:46 +01:00
|
|
|
}
|
|
|
|
|
|
2021-12-22 22:45:56 +01:00
|
|
|
val dockerSrcDir: Directory by extra
|
|
|
|
|
val factorioServerDataDir: Directory = dockerSrcDir.dir("factorio-server")
|
2021-12-01 16:57:46 +01:00
|
|
|
|
|
|
|
|
val factorioMod: Configuration by configurations.creating {
|
|
|
|
|
asConsumer()
|
|
|
|
|
factorioModAttributes(objects)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
|
factorioMod(projects.modules.eventsMod)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
val deployModToServer by tasks.registering(Copy::class) {
|
|
|
|
|
description = "Copy the mod to the Factorio Docker server"
|
|
|
|
|
group = project.name
|
|
|
|
|
|
2021-12-08 17:57:28 +01:00
|
|
|
from(
|
|
|
|
|
provider { factorioMod.incoming.artifacts.artifactFiles.files }
|
|
|
|
|
)
|
2021-12-01 16:57:46 +01:00
|
|
|
into(factorioServerDataDir.dir("mods"))
|
|
|
|
|
|
|
|
|
|
doLast {
|
|
|
|
|
logger.lifecycle("Copying mods ${source.files} to $destinationDir")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-12-03 09:04:18 +01:00
|
|
|
tasks.dockerDown {
|
|
|
|
|
commandLine = parseSpaceSeparatedArgs(""" docker-compose stop """)
|
|
|
|
|
}
|
|
|
|
|
|
2021-12-02 00:54:15 +01:00
|
|
|
tasks.dockerUp {
|
2021-12-01 16:57:46 +01:00
|
|
|
dependsOn(
|
|
|
|
|
deployModToServer,
|
2021-12-02 00:54:15 +01:00
|
|
|
":modules:infra-kafka-cluster:processRun",
|
2021-12-01 16:57:46 +01:00
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
2021-12-10 20:38:52 +01:00
|
|
|
tasks.dockerEnv {
|
2021-12-02 00:54:15 +01:00
|
|
|
properties("FACTORIO_VERSION" to libs.versions.factorio.get())
|
2021-12-01 16:57:46 +01:00
|
|
|
}
|
|
|
|
|
|
2021-12-02 00:54:15 +01:00
|
|
|
tasks.build { dependsOn(deployModToServer) }
|
|
|
|
|
|
|
|
|
|
//<editor-fold desc="Factorio server lifecycle tasks">
|
|
|
|
|
//val factorioServerStop = tasks.register<Exec>("factorioServerStop") {
|
|
|
|
|
// group = project.name
|
|
|
|
|
//
|
|
|
|
|
// mustRunAfter(deployModToServer)
|
|
|
|
|
//
|
|
|
|
|
// workingDir(modInfraDir)
|
|
|
|
|
// commandLine = parseSpaceSeparatedArgs("docker-compose stop factorio-server")
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
//val factorioServerUp = tasks.register<Exec>("factorioServerUp") {
|
|
|
|
|
// group = project.name
|
|
|
|
|
//
|
|
|
|
|
// mustRunAfter(deployModToServer)
|
|
|
|
|
// dependsOn(factorioServerStop)
|
|
|
|
|
//
|
|
|
|
|
// workingDir(modInfraDir)
|
|
|
|
|
// commandLine = parseSpaceSeparatedArgs("docker-compose up -d factorio-server")
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
//val factorioServerRestart: Task by tasks.creating {
|
|
|
|
|
// group = project.name
|
|
|
|
|
//
|
|
|
|
|
// dependsOn(factorioServerStop, factorioServerUp)
|
|
|
|
|
//}
|
|
|
|
|
//</editor-fold>
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
//tasks.processRun {
|
|
|
|
|
// description = "Build the mod, upload to Server and Client, and start both"
|
|
|
|
|
// dependsOn(
|
|
|
|
|
// deployModToServer,
|
|
|
|
|
// factorioServerRestart,
|
|
|
|
|
// )
|
|
|
|
|
//}
|
|
|
|
|
//
|
|
|
|
|
//tasks.processKill {
|
|
|
|
|
// dependsOn(
|
|
|
|
|
// factorioServerStop,
|
|
|
|
|
// )
|
|
|
|
|
//}
|
|
|
|
|
//
|