From d79a30b1ece70d0f4ff42428d471b837b20d6f8f Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Sun, 24 Apr 2022 21:01:16 +0200 Subject: [PATCH] fix factorio running check again?? --- .../dev/adamko/kafkatorio/task/ProcessRunningSpec.kt | 8 ++------ modules/infra-factorio-client/build.gradle.kts | 10 +++++++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/ProcessRunningSpec.kt b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/ProcessRunningSpec.kt index 57ddf15..a677735 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/ProcessRunningSpec.kt +++ b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/ProcessRunningSpec.kt @@ -9,15 +9,11 @@ import org.gradle.process.ExecOperations /** Checks if a process is running. Windows only. */ class ProcessRunningSpec( + private val executor: ExecOperations, private val process: String, private val ignoreCase: Boolean = true, ) : ExplainingSpec { - @Inject - fun executor(): ExecOperations { - throw UnsupportedOperationException() - } - override fun isSatisfiedBy(element: Task?): Boolean = whyUnsatisfied(element) == null override fun whyUnsatisfied(element: Task?): String? { @@ -27,7 +23,7 @@ class ProcessRunningSpec( else -> { return ByteArrayOutputStream().use { outputStream -> - executor().exec { + executor.exec { commandLine("tasklist") // Windows only for now... standardOutput = outputStream } diff --git a/modules/infra-factorio-client/build.gradle.kts b/modules/infra-factorio-client/build.gradle.kts index c92ee46..8288025 100644 --- a/modules/infra-factorio-client/build.gradle.kts +++ b/modules/infra-factorio-client/build.gradle.kts @@ -2,6 +2,7 @@ import dev.adamko.kafkatorio.gradle.asConsumer import dev.adamko.kafkatorio.gradle.factorioModAttributes import dev.adamko.kafkatorio.gradle.not import dev.adamko.kafkatorio.task.ProcessRunningSpec +import org.gradle.kotlin.dsl.support.serviceOf import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs plugins { @@ -38,13 +39,14 @@ val deployModToClient by tasks.registering(Copy::class) { // // -fun isFactorioRunning(): Spec = ProcessRunningSpec("factorio.exe") +fun ExecOperations.isFactorioRunning(): Spec = ProcessRunningSpec(this, "factorio.exe") + val clientLaunch by tasks.registering(Exec::class) { description = "Run Factorio Steam game client" group = project.name - onlyIf(!isFactorioRunning()) + onlyIf(!serviceOf().isFactorioRunning()) dependsOn(deployModToClient) mustRunAfter(clientKill, ":modules:infra-factorio-server:processRun") @@ -60,7 +62,9 @@ val clientLaunch by tasks.registering(Exec::class) { val clientKill by tasks.registering(Exec::class) { description = "Run Factorio Steam game client" group = project.name - onlyIf(isFactorioRunning()) + + onlyIf(serviceOf().isFactorioRunning()) + commandLine = parseSpaceSeparatedArgs(""" taskkill /im factorio.exe """) doFirst { logger.lifecycle("Killing factorio.exe") } }