summaryrefslogtreecommitdiff
path: root/buildSrc
diff options
context:
space:
mode:
authorHarsh Shandilya <msfjarvis@gmail.com>2019-10-02 18:04:18 +0530
committerGitHub <noreply@github.com>2019-10-02 18:04:18 +0530
commitf1f59dc1ed26c2351dc31e55902ff8e4b5a6ed0e (patch)
tree2afb98c921714ccefcd22f35a7340584d1bfba53 /buildSrc
parent9a1a54a6fcfa6fd6cf142f2af9804375255d14cf (diff)
Add Spotless to regulate codestyle (#550)
* Add Spotless to regulate codestyle * treewide: Run spotless * Add spotlessCheck to CI test Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
Diffstat (limited to 'buildSrc')
-rw-r--r--buildSrc/build.gradle.kts16
-rw-r--r--buildSrc/src/main/kotlin/SpotlessConfiguration.kt47
2 files changed, 63 insertions, 0 deletions
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
new file mode 100644
index 00000000..8c3ae64d
--- /dev/null
+++ b/buildSrc/build.gradle.kts
@@ -0,0 +1,16 @@
+plugins {
+ `kotlin-dsl`
+}
+
+repositories {
+ maven("https://plugins.gradle.org/m2/")
+ jcenter()
+}
+
+kotlinDslPluginOptions {
+ experimentalWarning.set(false)
+}
+
+dependencies {
+ implementation("com.diffplug.spotless:spotless-plugin-gradle:3.24.3")
+}
diff --git a/buildSrc/src/main/kotlin/SpotlessConfiguration.kt b/buildSrc/src/main/kotlin/SpotlessConfiguration.kt
new file mode 100644
index 00000000..3c183c5f
--- /dev/null
+++ b/buildSrc/src/main/kotlin/SpotlessConfiguration.kt
@@ -0,0 +1,47 @@
+import com.diffplug.gradle.spotless.SpotlessExtension
+import com.diffplug.gradle.spotless.SpotlessPlugin
+import org.gradle.api.Project
+import org.gradle.kotlin.dsl.apply
+import org.gradle.kotlin.dsl.configure
+
+val kotlinLicenseHeader = """/*
+ * Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
+ * SPDX-License-Identifier: GPL-2.0
+ */
+""".trimIndent()
+
+fun Project.configureSpotless() {
+ apply<SpotlessPlugin>()
+
+ configure<SpotlessExtension> {
+ java {
+ target("**/src/main/**/*.java")
+ trimTrailingWhitespace()
+ // @Suppress("INACCESSIBLE_TYPE")
+ // licenseHeader(kotlinLicenseHeader)
+ removeUnusedImports()
+ googleJavaFormat().aosp()
+ endWithNewline()
+ }
+
+ kotlinGradle {
+ target("*.gradle.kts", "gradle/*.gradle.kts", "buildSrc/*.gradle.kts")
+ ktlint("0.31.0").userData(mapOf("indent_size" to "4", "continuation_indent_size" to "4"))
+ // @Suppress("INACCESSIBLE_TYPE")
+ // licenseHeader(kotlinLicenseHeader, "import|tasks|apply|plugins|include")
+ trimTrailingWhitespace()
+ indentWithSpaces()
+ endWithNewline()
+ }
+
+ kotlin {
+ target("**/src/main/**/*.kt", "buildSrc/**/*.kt")
+ ktlint("0.31.0").userData(mapOf("indent_size" to "4", "continuation_indent_size" to "4"))
+ // @Suppress("INACCESSIBLE_TYPE")
+ // licenseHeader(kotlinLicenseHeader)
+ trimTrailingWhitespace()
+ indentWithSpaces()
+ endWithNewline()
+ }
+ }
+}