Browse Source

Use ktlint plugin instead of manual ktlint tasks

 - Recommended by ktlint
 - Analyzes sources for all sourcesets without extra config
 - Less gradle code to maintain

Signed-off-by: Álvaro Brey Vilas <alvaro.brey@nextcloud.com>
Álvaro Brey Vilas 3 years ago
parent
commit
3597fb0a53
3 changed files with 7 additions and 22 deletions
  1. 1 1
      .github/workflows/check.yml
  2. 3 18
      app/build.gradle
  3. 3 3
      scripts/hooks/pre-commit

+ 1 - 1
.github/workflows/check.yml

@@ -10,7 +10,7 @@ jobs:
         strategy:
             fail-fast: false
             matrix:
-                task: [ detekt, ktlint ]
+                task: [ detekt, ktlintCheck ]
         steps:
             -   uses: actions/checkout@v3
             -   name: Set up JDK 11

+ 3 - 18
app/build.gradle

@@ -13,6 +13,7 @@ buildscript {
         classpath "org.jacoco:org.jacoco.core:$jacoco_version"
         classpath "org.jacoco:org.jacoco.report:$jacoco_version"
         classpath "org.jacoco:org.jacoco.agent:$jacoco_version"
+        classpath "org.jlleitschuh.gradle:ktlint-gradle:10.2.1"
     }
 }
 
@@ -27,12 +28,11 @@ apply plugin: 'com.hiya.jacoco-android'
 apply plugin: 'com.github.spotbugs'
 apply plugin: 'io.gitlab.arturbosch.detekt'
 apply plugin: 'shot'
+apply plugin: "org.jlleitschuh.gradle.ktlint"
 
 println "Gradle uses Java ${Jvm.current()}"
 
 configurations {
-    ktlint
-
     all {
         exclude group: 'org.jetbrains', module: 'annotations-java5' // via prism4j, already using annotations explicitly
 
@@ -185,7 +185,7 @@ android {
         }
     }
 
-    check.dependsOn 'checkstyle', 'spotbugsGplayDebugReport', 'pmd', 'lint', 'ktlint', 'detekt'
+    check.dependsOn 'checkstyle', 'spotbugsGplayDebug', 'pmd', 'lint', 'ktlintCheck', 'detekt'
 
     buildFeatures {
         dataBinding true
@@ -263,7 +263,6 @@ dependencies {
     kapt "com.google.dagger:dagger-compiler:$daggerVersion"
     kapt "com.google.dagger:dagger-android-processor:$daggerVersion"
 
-    ktlint "com.pinterest:ktlint:0.44.0"
     implementation 'org.conscrypt:conscrypt-android:2.5.2'
 
     implementation "com.google.android.exoplayer:exoplayer:$exoplayerVersion"
@@ -391,20 +390,6 @@ tasks.register("combinedTestReport", JacocoReport) {
     ])
 }
 
-task ktlint(type: JavaExec, group: "verification") {
-    description = "Check Kotlin code style."
-    main = "com.pinterest.ktlint.Main"
-    classpath = configurations.ktlint
-    args "--reporter=plain", "--reporter=plain,output=${buildDir}/ktlint.txt,${projectDir}/src/**/*.kt"
-}
-
-task ktlintFormat(type: JavaExec, group: "formatting") {
-    description = "Fix Kotlin code style deviations."
-    main = "com.pinterest.ktlint.Main"
-    classpath = configurations.ktlint
-    args "-F", "${projectDir}/src/**/*.kt"
-}
-
 task installGitHooks(type: Copy, group: "development") {
     description = "Install git hooks"
     from("${project.rootDir}/scripts/hooks") {

+ 3 - 3
scripts/hooks/pre-commit

@@ -1,9 +1,9 @@
 #!/bin/bash
 # Pre-commit hook: don't allow commits if detekt or ktlint fail. Skip with "git commit --no-verify".
-echo "Running pre-commit checks."
+echo "Running pre-commit checks..."
 
-if ! ./gradlew --daemon ktlint &>/dev/null; then
-    echo >&2 "Lint failed! See report at file://$(pwd)/app/build/ktlint.txt"
+if ! ./gradlew --daemon ktlintCheck &>/dev/null; then
+    echo >&2 "ktlint failed! Run ./gradlew ktlintCheck for details"
     echo >&2 "Hint: fix most lint errors with ./gradlew ktlintFormat"
     exit 1
 fi