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 } }