Skip to content

Commit a1ddcb2

Browse files
committed
Relocate toml lint task to buildSrc and extend against default task
Fixes build errors after Gradle 9.x upgrade Ref: https://docs.gradle.org/current/userguide/implementing_custom_tasks.html Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
1 parent fb2625d commit a1ddcb2

3 files changed

Lines changed: 35 additions & 12 deletions

File tree

app/build.gradle.kts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ plugins {
1313
checkstyle
1414
}
1515

16-
apply(from = "check-dependencies.gradle.kts")
17-
1816
val gitWorkingBranch = providers.exec {
1917
commandLine("git", "rev-parse", "--abbrev-ref", "HEAD")
2018
}.standardOutput.asText.map { it.trim() }
@@ -173,6 +171,10 @@ tasks.register<JavaExec>("formatKtlint") {
173171
jvmArgs = listOf("--add-opens", "java.base/java.lang=ALL-UNNAMED")
174172
}
175173

174+
tasks.register<CheckDependenciesOrder>("checkDependenciesOrder") {
175+
tomlFile = layout.projectDirectory.file("../gradle/libs.versions.toml")
176+
}
177+
176178
afterEvaluate {
177179
tasks.named("preDebugBuild").configure {
178180
if (!System.getProperties().containsKey("skipFormatKtlint")) {

buildSrc/build.gradle.kts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2025 NewPipe e.V. <https://newpipe-ev.de>
3+
* SPDX-License-Identifier: GPL-3.0-or-later
4+
*/
5+
6+
plugins {
7+
`kotlin-dsl`
8+
}
9+
10+
repositories {
11+
gradlePluginPortal()
12+
}

app/check-dependencies.gradle.kts renamed to buildSrc/src/main/kotlin/CheckDependenciesOrder.kt

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,27 @@
44
* SPDX-License-Identifier: GPL-3.0-or-later
55
*/
66

7-
tasks.register("checkDependenciesOrder") {
8-
group = "verification"
9-
description = "Checks that each section in libs.versions.toml is sorted alphabetically"
7+
import org.gradle.api.DefaultTask
8+
import org.gradle.api.file.RegularFileProperty
9+
import org.gradle.api.tasks.InputFile
10+
import org.gradle.api.tasks.TaskAction
1011

11-
val tomlFile = file("../gradle/libs.versions.toml")
12+
abstract class CheckDependenciesOrder : DefaultTask() {
1213

13-
doLast {
14-
if (!tomlFile.exists()) {
15-
throw GradleException("TOML file not found")
16-
}
14+
@get:InputFile
15+
abstract val tomlFile: RegularFileProperty
16+
17+
init {
18+
group = "verification"
19+
description = "Checks that each section in libs.versions.toml is sorted alphabetically"
20+
}
21+
22+
@TaskAction
23+
fun run() {
24+
val file = tomlFile.get().asFile
25+
if (!file.exists()) error("TOML file not found")
1726

18-
val lines = tomlFile.readLines()
27+
val lines = file.readLines()
1928
val nonSortedBlocks = mutableListOf<List<String>>()
2029
var currentBlock = mutableListOf<String>()
2130
var prevLine = ""
@@ -50,7 +59,7 @@ tasks.register("checkDependenciesOrder") {
5059
}
5160

5261
if (nonSortedBlocks.isNotEmpty()) {
53-
throw GradleException(
62+
error(
5463
"The following lines were not sorted:\n" +
5564
nonSortedBlocks.joinToString("\n\n") { it.joinToString("\n") }
5665
)

0 commit comments

Comments
 (0)