18 lines
633 B
Kotlin
18 lines
633 B
Kotlin
import org.gradle.api.Project
|
|
|
|
fun Project.envValue(key: String): String? {
|
|
val fromEnv = providers.environmentVariable(key).orNull
|
|
if(fromEnv != null) return fromEnv
|
|
|
|
val envFile = rootProject.file(".env")
|
|
if(!envFile.exists()) return null
|
|
|
|
return envFile.useLines { lines ->
|
|
lines.map { it.trim() }.filter { it.isNotBlank() && !it.startsWith('#') && '=' in it }
|
|
.map { line ->
|
|
val (k, v) = line.split('=', limit = 2)
|
|
k.trim() to v.trim().removeSurrounding("\"").removeSurrounding("'")
|
|
}
|
|
.firstOrNull { it.first == key }?.second
|
|
}
|
|
} |