Kafkatorio/modules/infra-factorio-server/build.gradle.kts
Adam 4bc46f9753 progress towards multi-server handling
- bump some versions
- validate Factorio server ID & token
-
2022-08-28 19:37:49 +02:00

77 lines
1.5 KiB
Kotlin

import dev.adamko.kafkatorio.factoriomod.FactorioMod
import dev.adamko.kafkatorio.gradle.asConsumer
import dev.adamko.kafkatorio.gradle.factorioModAttributes
import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs
plugins {
dev.adamko.kafkatorio.infra.`docker-compose`
}
val dockerSrcDir: Directory by extra
val factorioServerDataDir: Directory = dockerSrcDir.dir("factorio-server")
val factorioMod: Configuration by configurations.creating {
asConsumer()
factorioModAttributes(objects)
}
dependencies {
factorioMod(projects.modules.eventsMod)
}
val deployModToLocalServer by tasks.registering(Copy::class) {
description = "Copy the mod to the Factorio Docker server"
group = FactorioMod.TASK_GROUP
dependsOn(factorioMod)
from(
provider { factorioMod.incoming.artifacts.artifactFiles.files }
)
into(factorioServerDataDir.dir("mods"))
doLast {
logger.lifecycle("Copying mods ${source.files} to $destinationDir")
}
}
tasks.dockerDown {
commandLine = parseSpaceSeparatedArgs(""" docker-compose stop """)
}
tasks.dockerUp {
dependsOn(
deployModToLocalServer,
":modules:infra-kafka-cluster:processRun",
)
}
val kafkatorioServerToken: String by project
tasks.dockerEnvUpdate {
properties(
"FACTORIO_VERSION" to libs.versions.factorio.get(),
"KAFKATORIO_TOKEN" to kafkatorioServerToken,
)
}
tasks.register(FactorioMod.PUBLISH_MOD_LOCAL_TASK_NAME) {
group = FactorioMod.TASK_GROUP
dependsOn(deployModToLocalServer)
}
idea {
module {
excludeDirs.add(file("src/factorio-server"))
}
}