From 12bb4e9400c7b6ac319fb976d981620458575b73 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 May 2026 14:26:50 +0100 Subject: [PATCH] add support for generate --config --- .../build/buf/gradle/GenerateConfiguration.kt | 2 ++ .../kotlin/build/buf/gradle/GenerateTask.kt | 22 ++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/build/buf/gradle/GenerateConfiguration.kt b/src/main/kotlin/build/buf/gradle/GenerateConfiguration.kt index 946d794d..73d9d98a 100644 --- a/src/main/kotlin/build/buf/gradle/GenerateConfiguration.kt +++ b/src/main/kotlin/build/buf/gradle/GenerateConfiguration.kt @@ -32,6 +32,8 @@ internal fun Project.configureGenerate() { templateFile.set(generateOptions?.let { resolveTemplateFile(it) }) inputFiles.setFrom(obtainDefaultProtoFileSet()) outputDirectory.set(File(project.bufbuildDir, GENERATED_DIR)) + bufConfigFile.set(project.bufConfigFile()) + v1SyntaxOnly.set(bufV1SyntaxOnly()) } } diff --git a/src/main/kotlin/build/buf/gradle/GenerateTask.kt b/src/main/kotlin/build/buf/gradle/GenerateTask.kt index 5065d935..adb6f3e1 100644 --- a/src/main/kotlin/build/buf/gradle/GenerateTask.kt +++ b/src/main/kotlin/build/buf/gradle/GenerateTask.kt @@ -48,6 +48,15 @@ abstract class GenerateTask : AbstractBufExecTask() { @get:OutputDirectory internal abstract val outputDirectory: Property + /** The input buf configuration file. */ + @get:InputFiles + @get:Optional + @get:PathSensitive(PathSensitivity.RELATIVE) + internal abstract val bufConfigFile: Property + + @get:Input + internal abstract val v1SyntaxOnly: Property + @TaskAction fun bufGenerate() { val args = listOf("generate", "--output", outputDirectory.get()) @@ -67,6 +76,17 @@ abstract class GenerateTask : AbstractBufExecTask() { listOf("--template", it.absolutePath) } ?: emptyList() - return importOptions + templateFileOption + val configOption = + if (noWorkspaceAndV1Syntax() || noWorkspaceAndNoProtobufGradlePlugin()) { + bufConfigFile.orNull?.let { listOf("--config", it.absolutePath) } + } else { + null + }.orEmpty() + + return importOptions + templateFileOption + configOption } + + private fun noWorkspaceAndV1Syntax() = !hasWorkspace.get() && v1SyntaxOnly.get() + + private fun noWorkspaceAndNoProtobufGradlePlugin() = !hasWorkspace.get() && !hasProtobufGradlePlugin.get() }