diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e4f318f65..7e50a0688 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -12,8 +12,6 @@ plugins { checkstyle } -apply(from = "check-dependencies.gradle.kts") - val gitWorkingBranch = providers.exec { commandLine("git", "rev-parse", "--abbrev-ref", "HEAD") }.standardOutput.asText.map { it.trim() } @@ -172,6 +170,10 @@ tasks.register("formatKtlint") { jvmArgs = listOf("--add-opens", "java.base/java.lang=ALL-UNNAMED") } +tasks.register("checkDependenciesOrder") { + tomlFile = layout.projectDirectory.file("../gradle/libs.versions.toml") +} + afterEvaluate { tasks.named("preDebugBuild").configure { if (!System.getProperties().containsKey("skipFormatKtlint")) { diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 000000000..713cead4b --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,12 @@ +/* + * SPDX-FileCopyrightText: 2025 NewPipe e.V. + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +plugins { + `kotlin-dsl` +} + +repositories { + gradlePluginPortal() +} diff --git a/app/check-dependencies.gradle.kts b/buildSrc/src/main/kotlin/CheckDependenciesOrder.kt similarity index 73% rename from app/check-dependencies.gradle.kts rename to buildSrc/src/main/kotlin/CheckDependenciesOrder.kt index fc77148db..8bf92d8cd 100644 --- a/app/check-dependencies.gradle.kts +++ b/buildSrc/src/main/kotlin/CheckDependenciesOrder.kt @@ -4,18 +4,27 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -tasks.register("checkDependenciesOrder") { - group = "verification" - description = "Checks that each section in libs.versions.toml is sorted alphabetically" +import org.gradle.api.DefaultTask +import org.gradle.api.file.RegularFileProperty +import org.gradle.api.tasks.InputFile +import org.gradle.api.tasks.TaskAction - val tomlFile = file("../gradle/libs.versions.toml") +abstract class CheckDependenciesOrder : DefaultTask() { - doLast { - if (!tomlFile.exists()) { - throw GradleException("TOML file not found") - } + @get:InputFile + abstract val tomlFile: RegularFileProperty - val lines = tomlFile.readLines() + init { + group = "verification" + description = "Checks that each section in libs.versions.toml is sorted alphabetically" + } + + @TaskAction + fun run() { + val file = tomlFile.get().asFile + if (!file.exists()) error("TOML file not found") + + val lines = file.readLines() val nonSortedBlocks = mutableListOf>() var currentBlock = mutableListOf() var prevLine = "" @@ -50,7 +59,7 @@ tasks.register("checkDependenciesOrder") { } if (nonSortedBlocks.isNotEmpty()) { - throw GradleException( + error( "The following lines were not sorted:\n" + nonSortedBlocks.joinToString("\n\n") { it.joinToString("\n") } )