From 05e799a92529daa73c7ea6be545ab7b701bcb072 Mon Sep 17 00:00:00 2001 From: Ahmad Ansori Palembani Date: Sat, 8 Jun 2024 06:46:07 +0700 Subject: [PATCH] refactor: Don't use buildSrc as much as possible I personally hate buildSrc ngl --- app/build.gradle.kts | 22 +++++++++++++------ buildSrc/src/main/kotlin/Commands.kt | 32 ---------------------------- 2 files changed, 16 insertions(+), 38 deletions(-) delete mode 100644 buildSrc/src/main/kotlin/Commands.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 590396d431..3ac81357b0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,4 +1,7 @@ import java.io.ByteArrayOutputStream +import java.time.LocalDateTime +import java.time.ZoneOffset +import java.time.format.DateTimeFormatter plugins { id("com.android.application") @@ -26,6 +29,13 @@ fun runCommand(command: String): String { return String(byteOut.toByteArray()).trim() } +val commitCount by lazy { runCommand("git rev-list --count HEAD") } +val commitHash by lazy { runCommand("git rev-parse --short HEAD") } +val buildTime: String by lazy { + val df = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'") + LocalDateTime.now(ZoneOffset.UTC).format(df) +} + val supportedAbis = setOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64") android { @@ -41,9 +51,9 @@ android { testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled = true - buildConfigField("String", "COMMIT_COUNT", "\"${getCommitCount()}\"") - buildConfigField("String", "COMMIT_SHA", "\"${getGitSha()}\"") - buildConfigField("String", "BUILD_TIME", "\"${getBuildTime()}\"") + buildConfigField("String", "COMMIT_COUNT", "\"${commitCount}\"") + buildConfigField("String", "COMMIT_SHA", "\"${commitHash}\"") + buildConfigField("String", "BUILD_TIME", "\"${buildTime}\"") buildConfigField("Boolean", "INCLUDE_UPDATER", "false") buildConfigField("Boolean", "BETA", "false") buildConfigField("Boolean", "NIGHTLY", "false") @@ -74,7 +84,7 @@ android { buildTypes { getByName("debug") { applicationIdSuffix = ".debugYokai" - versionNameSuffix = "-d${getCommitCount()}" + versionNameSuffix = "-d${commitCount}" } getByName("release") { applicationIdSuffix = ".yokai" @@ -87,7 +97,7 @@ android { buildConfigField("boolean", "BETA", "true") matchingFallbacks.add("release") - versionNameSuffix = "-b${getCommitCount()}" + versionNameSuffix = "-b${commitCount}" } create("nightly") { initWith(getByName("release")) @@ -96,7 +106,7 @@ android { signingConfig = signingConfigs.getByName("debug") matchingFallbacks.add("release") - versionNameSuffix = "-b${getCommitCount()}" + versionNameSuffix = "-b${commitCount}" applicationIdSuffix = ".nightlyYokai" } } diff --git a/buildSrc/src/main/kotlin/Commands.kt b/buildSrc/src/main/kotlin/Commands.kt deleted file mode 100644 index 1576d12e75..0000000000 --- a/buildSrc/src/main/kotlin/Commands.kt +++ /dev/null @@ -1,32 +0,0 @@ -import org.gradle.api.Project -import java.io.ByteArrayOutputStream -import java.text.SimpleDateFormat -import java.util.TimeZone -import java.util.Date - -// Git is needed in your system PATH for these commands to work. -// If it's not installed, you can return a random value as a workaround -fun Project.getCommitCount(): String { - return runCommand("git rev-list --count HEAD") - // return "1" -} - -fun Project.getGitSha(): String { - return runCommand("git rev-parse --short HEAD") - // return "1" -} - -fun Project.getBuildTime(): String { - val df = SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'") - df.timeZone = TimeZone.getTimeZone("UTC") - return df.format(Date()) -} - -fun Project.runCommand(command: String): String { - val byteOut = ByteArrayOutputStream() - project.exec { - commandLine = command.split(" ") - standardOutput = byteOut - } - return String(byteOut.toByteArray()).trim() -}