compile the current time into a constant ? i woul ...
# kotlin-native
n
compile the current time into a constant ? i woul do that using gradle, add a generated src in the build directory, copy a from Templat.kt and replace
$TIME
with current time in kotlin-dsl:
Copy code
sourceSets {
    getByName("main").java.srcDirs("$buildDir/generated-src")
}
val compileKotlin by tasks.getting(KotlinCompile::class) {
            doFirst {
                val folder = if (project != rootProject) "${rootProject.name}/${project.name}" else rootProject.name
                val name = project.name.split("/").last().capitalize().split("-").joinToString("") { it.capitalize() }
                val templateSrc = rootProject.file("template/kotlin/")
                copy {
                    from(templateSrc)
                    into("$buildDir/generated-src/$folder")
                    expand(mapOf(
                            "PACKAGE" to folder.replace("/", ".").replace("-", "."),
                            "NAME" to name,
                            "MAJOR_VERSION" to major,
                            "MINOR_VERSION" to minor,
                            "PATCH_VERSION" to patch,
                            "BUILD_NUMBER" to System.getenv("BUILD_NUMBER").let { it ?: -1 },
                            "BUILD" to System.getenv("BUILD_NUMBER").let { it ?: "dev" }
                    ))
                }
            }
        }
the Template file would contain stuff like so
Copy code
package $PACKAGE
object ${NAME}Constants {
    const val MAJOR_VERSION = $MAJOR_VERSION
    const val MINOR_VERSION = $MINOR_VERSION
    const val PATCH_VERSION = $PATCH_VERSION
    const val BUILD_NUMBER  = $BUILD_NUMBER

    const val VERSION = "$MAJOR_VERSION.$MINOR_VERSION.$PATCH_VERSION"
    const val FULL_VERSION = "$MAJOR_VERSION.$MINOR_VERSION.$PATCH_VERSION-$BUILD"
}
home that helps @Konstantin Petrukhnov