blob: 349813021ac3eeb442a2555a13bb5c04d60242d7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
/*
* Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/
@file:Suppress("LocalVariableName")
package org.jetbrains
import org.gradle.api.Project
enum class DokkaPublicationChannel {
SPACE_DOKKA_DEV,
MAVEN_CENTRAL,
MAVEN_CENTRAL_SNAPSHOT,
GRADLE_PLUGIN_PORTAL;
val acceptedDokkaVersionTypes: List<DokkaVersionType>
get() = when(this) {
MAVEN_CENTRAL -> listOf(DokkaVersionType.RELEASE, DokkaVersionType.RC)
MAVEN_CENTRAL_SNAPSHOT -> listOf(DokkaVersionType.SNAPSHOT)
SPACE_DOKKA_DEV -> listOf(DokkaVersionType.RELEASE, DokkaVersionType.RC, DokkaVersionType.DEV, DokkaVersionType.SNAPSHOT)
GRADLE_PLUGIN_PORTAL -> listOf(DokkaVersionType.RELEASE, DokkaVersionType.RC)
}
fun isSpaceRepository() = this == SPACE_DOKKA_DEV
fun isMavenRepository() = this == MAVEN_CENTRAL || this == MAVEN_CENTRAL_SNAPSHOT
fun isGradlePluginPortal() = this == GRADLE_PLUGIN_PORTAL
companion object {
fun fromPropertyString(value: String): DokkaPublicationChannel = when (value) {
"space-dokka-dev" -> SPACE_DOKKA_DEV
"maven-central-release" -> MAVEN_CENTRAL
"maven-central-snapshot" -> MAVEN_CENTRAL_SNAPSHOT
"gradle-plugin-portal" -> GRADLE_PLUGIN_PORTAL
else -> throw IllegalArgumentException("Unknown dokka_publication_channel=$value")
}
}
}
val Project.publicationChannels: Set<DokkaPublicationChannel>
get() {
val publicationChannel = this.properties["dokka_publication_channel"]?.toString()
val publicationChannels = this.properties["dokka_publication_channels"]?.toString()
if (publicationChannel != null && publicationChannels != null) {
throw IllegalArgumentException(
"Only one of dokka_publication_channel and dokka_publication_channel*s* can be set. Found: \n" +
"dokka_publication_channel=$publicationChannel\n" +
"dokka_publication_channels=$publicationChannels"
)
}
if (publicationChannel != null) {
return setOf(DokkaPublicationChannel.fromPropertyString(publicationChannel))
}
if (publicationChannels != null) {
return publicationChannels.split("&").map { channel ->
DokkaPublicationChannel.fromPropertyString(channel)
}.toSet()
}
return emptySet()
}
|