From 002aa9b5fbcb4ceb0d9a510642b0ddfb93d86461 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 4 Oct 2022 22:32:05 +0200 Subject: [PATCH] tidy up dockerActive property & check --- .../dev/adamko/geedeecee/GDCCommandTask.kt | 32 +++++++++++++++---- .../kotlin/dev/adamko/geedeecee/GDCPlugin.kt | 3 +- .../dev/adamko/geedeecee/GDCSettings.kt | 2 +- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/gradle-plugins/docker-compose/src/main/kotlin/dev/adamko/geedeecee/GDCCommandTask.kt b/gradle-plugins/docker-compose/src/main/kotlin/dev/adamko/geedeecee/GDCCommandTask.kt index 1693581..4596442 100644 --- a/gradle-plugins/docker-compose/src/main/kotlin/dev/adamko/geedeecee/GDCCommandTask.kt +++ b/gradle-plugins/docker-compose/src/main/kotlin/dev/adamko/geedeecee/GDCCommandTask.kt @@ -2,9 +2,11 @@ package dev.adamko.geedeecee import javax.inject.Inject import org.gradle.api.DefaultTask +import org.gradle.api.Task import org.gradle.api.file.DirectoryProperty import org.gradle.api.logging.LogLevel import org.gradle.api.provider.ListProperty +import org.gradle.api.provider.Property import org.gradle.api.tasks.Input import org.gradle.api.tasks.InputDirectory import org.gradle.api.tasks.TaskAction @@ -15,19 +17,26 @@ abstract class GDCCommandTask @Inject constructor( private val executor: ExecOperations ) : DefaultTask() { - init { - super.setGroup(GDCPlugin.GCD_TASK_GROUP) - description = "Run a docker-compose command." - - logging.captureStandardOutput(LogLevel.LIFECYCLE) - } - @get:InputDirectory abstract val workingDir: DirectoryProperty @get:Input abstract val separatedArgs: ListProperty + @get:Input + abstract val dockerActive: Property + + init { + super.setGroup(GDCPlugin.GCD_TASK_GROUP) + description = "Run a docker-compose command." + + enabledIf { + it.dockerActive.orNull == true + } + + logging.captureStandardOutput(LogLevel.LIFECYCLE) + } + @TaskAction fun dockerCompose() { val separatedArgs: List = separatedArgs.get() @@ -45,4 +54,13 @@ abstract class GDCCommandTask @Inject constructor( parseSpaceSeparatedArgs("docker-compose $args") ) } + + companion object { + private inline fun T.enabledIf(crossinline spec: (T) -> Boolean) { + onlyIf { + require(it is T) + spec(it) + } + } + } } diff --git a/gradle-plugins/docker-compose/src/main/kotlin/dev/adamko/geedeecee/GDCPlugin.kt b/gradle-plugins/docker-compose/src/main/kotlin/dev/adamko/geedeecee/GDCPlugin.kt index 9034ad2..e1ca252 100644 --- a/gradle-plugins/docker-compose/src/main/kotlin/dev/adamko/geedeecee/GDCPlugin.kt +++ b/gradle-plugins/docker-compose/src/main/kotlin/dev/adamko/geedeecee/GDCPlugin.kt @@ -60,6 +60,7 @@ abstract class GDCPlugin @Inject constructor( target.tasks.withType().configureEach { workingDir.convention(gdcSettings.srcDir) dependsOn(dockerComposeEnvUpdate) + dockerActive.set(gdcSettings.dockerActive) } val assembleTasks = target.tasks.matching { LifecycleBasePlugin.ASSEMBLE_TASK_NAME == it.name } @@ -89,7 +90,7 @@ abstract class GDCPlugin @Inject constructor( dotEnv.put("KAFKATORIO_VERSION", composeProjectVersion) dotEnv.put("REGISTRY_HOST", containerRegistryHost) - enabled.convention(isDockerActive()) + dockerActive.convention(isDockerActive()) } diff --git a/gradle-plugins/docker-compose/src/main/kotlin/dev/adamko/geedeecee/GDCSettings.kt b/gradle-plugins/docker-compose/src/main/kotlin/dev/adamko/geedeecee/GDCSettings.kt index 238c106..c11c427 100644 --- a/gradle-plugins/docker-compose/src/main/kotlin/dev/adamko/geedeecee/GDCSettings.kt +++ b/gradle-plugins/docker-compose/src/main/kotlin/dev/adamko/geedeecee/GDCSettings.kt @@ -24,7 +24,7 @@ interface GDCSettings { val dotEnv: MapProperty @get:Input - val enabled: Property + val dockerActive: Property // @Suppress("PropertyName", "FunctionName") // abstract class DotEnv(