aboutsummaryrefslogtreecommitdiffstats
path: root/build-logic/src/main/kotlin/app/passwordstore/gradle/PublishedAndroidLibraryPlugin.kt
diff options
context:
space:
mode:
authorHarsh Shandilya <me@msfjarvis.dev>2022-12-02 01:57:02 +0530
committerHarsh Shandilya <me@msfjarvis.dev>2022-12-02 01:57:02 +0530
commitafd0eebdd3287d932c53879fa1ac88f430080ef5 (patch)
tree141b9147325b96f4ab3a49927e4a1d997f3c37be /build-logic/src/main/kotlin/app/passwordstore/gradle/PublishedAndroidLibraryPlugin.kt
parent54bb4676a7c16d959769e522ac018f3e3e822797 (diff)
downloadHardenedPass-afd0eebdd3287d932c53879fa1ac88f430080ef5.tar.gz
HardenedPass-afd0eebdd3287d932c53879fa1ac88f430080ef5.zip
refactor(build-logic): move all code to a single top-level project
Diffstat (limited to 'build-logic/src/main/kotlin/app/passwordstore/gradle/PublishedAndroidLibraryPlugin.kt')
-rw-r--r--build-logic/src/main/kotlin/app/passwordstore/gradle/PublishedAndroidLibraryPlugin.kt47
1 files changed, 47 insertions, 0 deletions
diff --git a/build-logic/src/main/kotlin/app/passwordstore/gradle/PublishedAndroidLibraryPlugin.kt b/build-logic/src/main/kotlin/app/passwordstore/gradle/PublishedAndroidLibraryPlugin.kt
new file mode 100644
index 00000000..542bfeb6
--- /dev/null
+++ b/build-logic/src/main/kotlin/app/passwordstore/gradle/PublishedAndroidLibraryPlugin.kt
@@ -0,0 +1,47 @@
+@file:Suppress("UnstableApiUsage")
+
+package app.passwordstore.gradle
+
+import com.vanniktech.maven.publish.MavenPublishBaseExtension
+import com.vanniktech.maven.publish.MavenPublishPlugin
+import com.vanniktech.maven.publish.SonatypeHost
+import me.tylerbwong.gradle.metalava.Documentation
+import me.tylerbwong.gradle.metalava.extension.MetalavaExtension
+import org.gradle.api.Plugin
+import org.gradle.api.Project
+import org.gradle.kotlin.dsl.apply
+import org.gradle.kotlin.dsl.getByType
+import org.gradle.kotlin.dsl.provideDelegate
+import org.gradle.plugins.signing.SigningExtension
+import org.gradle.plugins.signing.SigningPlugin
+
+@Suppress("Unused")
+class PublishedAndroidLibraryPlugin : Plugin<Project> {
+
+ override fun apply(project: Project) {
+ project.plugins.run {
+ apply(LibraryPlugin::class)
+ apply(MavenPublishPlugin::class)
+ apply(SigningPlugin::class)
+ apply("me.tylerbwong.gradle.metalava")
+ }
+ project.extensions.getByType<MavenPublishBaseExtension>().run {
+ publishToMavenCentral(SonatypeHost.DEFAULT, true)
+ signAllPublications()
+ }
+ project.afterEvaluate {
+ project.extensions.getByType<SigningExtension>().run {
+ val signingKey: String? by project
+ val signingPassword: String? by project
+ useInMemoryPgpKeys(signingKey, signingPassword)
+ }
+ }
+ project.extensions.getByType<MetalavaExtension>().run {
+ documentation.set(Documentation.PUBLIC)
+ inputKotlinNulls.set(true)
+ outputKotlinNulls.set(true)
+ reportLintsAsErrors.set(true)
+ reportWarningsAsErrors.set(true)
+ }
+ }
+}