You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.7 KiB
36 lines
1.7 KiB
/* |
|
* Copyright 2020-2022 JetBrains s.r.o. and respective authors and developers. |
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE.txt file. |
|
*/ |
|
|
|
import org.gradle.api.Project |
|
import org.gradle.api.provider.Provider |
|
|
|
class IdePluginBuildProperties(private val project: Project) { |
|
val deployVersion get() = gradleProperty("deploy.version") |
|
val pluginName get() = gradleProperty("plugin.name") |
|
val pluginDependencies get() = gradleProperty("plugin.dependencies").commaSeparatedList() |
|
val platformType get() = gradleProperty("platform.type") |
|
val platformVersion get() = gradleProperty("platform.version") |
|
val platformDownloadSources get() = gradleProperty("platform.download.sources").toBoolean() |
|
val pluginChannels get() = gradleProperty("plugin.channels").commaSeparatedList() |
|
val pluginSinceBuild get() = gradleProperty("plugin.since.build") |
|
val pluginUntilBuild get() = gradleProperty("plugin.until.build") |
|
val pluginVerifierIdeVersions get() = gradleProperty("plugin.verifier.ide.versions").commaSeparatedList() |
|
val publishToken get() = envVar("IDE_PLUGIN_PUBLISH_TOKEN") |
|
|
|
private fun envVar(key: String): Provider<String> = |
|
project.providers.environmentVariable(key) |
|
|
|
private fun gradleProperty(key: String): Provider<String> = |
|
project.provider { |
|
(project.findProperty(key) as? Any)?.toString() |
|
?: error("$project does not specify '$key' property") |
|
} |
|
|
|
private fun Provider<String>.toBoolean(): Provider<Boolean> = |
|
map { it.toBoolean() } |
|
|
|
private fun Provider<String>.commaSeparatedList(): Provider<List<String>> = |
|
map { str -> str.split(",").map { it.trim() }.filter { it.isNotEmpty() } } |
|
} |