diff options
| author | Harsh Shandilya <msfjarvis@gmail.com> | 2020-11-15 14:04:14 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-15 09:34:14 +0100 |
| commit | d3c1a73050cad74460a7fedddb114d196e5703aa (patch) | |
| tree | ecd9ee3270a2c38e8d385e20d6a214ecde7466ef /buildSrc/src/main/java/SigningConfig.kt | |
| parent | 02c853c3b1124d8d37c357f7040abd579c51bf8a (diff) | |
| download | HardenedPass-d3c1a73050cad74460a7fedddb114d196e5703aa.tar.gz HardenedPass-d3c1a73050cad74460a7fedddb114d196e5703aa.zip | |
build: refactor for configuration cache compatibility (#1208)
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Diffstat (limited to 'buildSrc/src/main/java/SigningConfig.kt')
| -rw-r--r-- | buildSrc/src/main/java/SigningConfig.kt | 34 |
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) } + } +} |
