aboutsummaryrefslogtreecommitdiffstats
path: root/buildSrc/src/main/java/SigningConfig.kt
diff options
context:
space:
mode:
Diffstat (limited to 'buildSrc/src/main/java/SigningConfig.kt')
-rw-r--r--buildSrc/src/main/java/SigningConfig.kt34
1 files changed, 34 insertions, 0 deletions
diff --git a/buildSrc/src/main/java/SigningConfig.kt b/buildSrc/src/main/java/SigningConfig.kt
new file mode 100644
index 00000000..1f494d5f
--- /dev/null
+++ b/buildSrc/src/main/java/SigningConfig.kt
@@ -0,0 +1,34 @@
+/*
+ * Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved.
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+
+import com.android.build.gradle.internal.dsl.BaseAppModuleExtension
+import java.util.Properties
+import org.gradle.api.Project
+
+private const val KEYSTORE_CONFIG_PATH = "keystore.properties"
+
+/**
+ * Configure signing for all build types.
+ */
+@Suppress("UnstableApiUsage")
+internal fun BaseAppModuleExtension.configureBuildSigning(project: Project) {
+ with(project) {
+ val keystoreConfigFile = rootProject.layout.projectDirectory.file(KEYSTORE_CONFIG_PATH)
+ if (!keystoreConfigFile.asFile.exists()) return
+ val contents = providers.fileContents(keystoreConfigFile).asText.forUseAtConfigurationTime()
+ val keystoreProperties = Properties()
+ keystoreProperties.load(contents.get().byteInputStream())
+ signingConfigs {
+ register("release") {
+ keyAlias = keystoreProperties["keyAlias"] as String
+ keyPassword = keystoreProperties["keyPassword"] as String
+ storeFile = rootProject.file(keystoreProperties["storeFile"] as String)
+ storePassword = keystoreProperties["storePassword"] as String
+ }
+ }
+ val signingConfig = signingConfigs.getByName("release")
+ buildTypes.all { setSigningConfig(signingConfig) }
+ }
+}