From 3d3d4e3a241c7fe326a2943e2aa404212f17ecf2 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Sat, 22 Dec 2018 17:17:32 +0100 Subject: [PATCH] Properly handle situations where no valid signing config is available --- app/build.gradle.kts | 11 +++++------ buildSrc/src/main/kotlin/ProjectHelper.kt | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 279db4a63..24484e8e9 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -37,13 +37,12 @@ android { compileSdkVersion(28) signingConfigs { - val signing = project.rootProject.properties("signing.properties") - if (signing != null) { + SigningData.of(project.rootProject.properties("signing.properties"))?.let { create("default") { - storeFile = file(signing.getProperty("storeFile")) - storePassword = signing.getProperty("storePassword") - keyAlias = signing.getProperty("keyAlias") - keyPassword = signing.getProperty("keyPassword") + storeFile = file(it.storeFile) + storePassword = it.storePassword + keyAlias = it.keyAlias + keyPassword = it.keyPassword } } } diff --git a/buildSrc/src/main/kotlin/ProjectHelper.kt b/buildSrc/src/main/kotlin/ProjectHelper.kt index d7517e04e..1a9f2c318 100644 --- a/buildSrc/src/main/kotlin/ProjectHelper.kt +++ b/buildSrc/src/main/kotlin/ProjectHelper.kt @@ -41,3 +41,23 @@ fun Project.properties(fileName: String): Properties? { props.load(file.inputStream()) return props } + +data class SigningData( + val storeFile: String, + val storePassword: String, + val keyAlias: String, + val keyPassword: String +) { + companion object { + fun of(properties: Properties?): SigningData? { + if (properties == null) return null + + val storeFile = properties.getProperty("storeFile") ?: return null + val storePassword = properties.getProperty("storePassword") ?: return null + val keyAlias = properties.getProperty("keyAlias") ?: return null + val keyPassword = properties.getProperty("keyPassword") ?: return null + + return SigningData(storeFile, storePassword, keyAlias, keyPassword) + } + } +} -- GitLab