Skip to content

Commit 1a164b1

Browse files
committed
feat: add SDK version to config
1 parent 9356f1c commit 1a164b1

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

build.gradle.kts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,31 @@ dependencies {
3232
testImplementation(libs.ktor.client.mock)
3333
}
3434

35+
val generateBuildConfig by tasks.registering {
36+
val outputDir = layout.buildDirectory.dir("generated/source/buildConfig/com/ctrlhub")
37+
val packageName = "com.ctrlhub"
38+
val versionName = project.getGitTag()
39+
40+
outputs.dir(outputDir)
41+
42+
doLast {
43+
val packageDir = outputDir.get().asFile.resolve(packageName.replace('.', '/'))
44+
packageDir.mkdirs()
45+
val buildConfigFile = packageDir.resolve("BuildConfig.kt")
46+
buildConfigFile.writeText(
47+
"""
48+
package $packageName
49+
50+
object BuildConfig {
51+
const val VERSION_NAME = "$versionName"
52+
}
53+
""".trimIndent()
54+
)
55+
}
56+
}
57+
58+
kotlin.sourceSets["main"].kotlin.srcDir(layout.buildDirectory.dir("generated/source/buildConfig"))
59+
3560
fun Project.getGitTag(): String {
3661
return try {
3762
val process = ProcessBuilder("git", "describe", "--tags", "--abbrev=0")
@@ -70,4 +95,8 @@ publishing {
7095

7196
tasks.test {
7297
useJUnitPlatform()
98+
}
99+
100+
tasks.named("compileKotlin") {
101+
dependsOn(generateBuildConfig)
73102
}

src/main/kotlin/com/ctrlhub/core/Config.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.ctrlhub.core
22

3+
import com.ctrlhub.BuildConfig
4+
35
enum class Environment {
46
STAGING,
57
PRODUCTION
@@ -8,6 +10,7 @@ enum class Environment {
810
object Config {
911
var environment: Environment = Environment.PRODUCTION
1012
var userAgent: String = "CtrlHub SDK"
13+
var version: String = BuildConfig.VERSION_NAME
1114

1215
val authBaseUrl: String
1316
get() = when (environment) {

0 commit comments

Comments
 (0)