diff options
| author | Harsh Shandilya <me@msfjarvis.dev> | 2022-12-02 01:57:02 +0530 |
|---|---|---|
| committer | Harsh Shandilya <me@msfjarvis.dev> | 2022-12-02 01:57:02 +0530 |
| commit | afd0eebdd3287d932c53879fa1ac88f430080ef5 (patch) | |
| tree | 141b9147325b96f4ab3a49927e4a1d997f3c37be /build-logic/src/main/kotlin/app/passwordstore/gradle/PublishedAndroidLibraryPlugin.kt | |
| parent | 54bb4676a7c16d959769e522ac018f3e3e822797 (diff) | |
| download | HardenedPass-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.kt | 47 |
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) + } + } +} |
