KotlinPublicationScriptsBui.../src/main/kotlin/com/insanusmokrassar/kmppscriptbuilder/models/MavenConfig.kt

36 lines
1.1 KiB
Kotlin

package com.insanusmokrassar.kmppscriptbuilder.models
import kotlinx.serialization.Serializable
@Serializable
data class MavenConfig(
val name: String,
val description: String,
val url: String,
val vcsUrl: String,
val includeGpgSigning: Boolean = false,
val developers: List<Developer>,
val repositories: List<MavenPublishingRepository> = emptyList()
)
@Serializable
data class MavenPublishingRepository(
val name: String,
val url: String
) {
private val nameCapitalized by lazy {
name.toUpperCase()
}
fun build(indent: String) = """maven {
name = "$name"
url = uri("$url")
credentials {
username = project.hasProperty('${nameCapitalized}_USER') ? project.property('${nameCapitalized}_USER') : System.getenv('${nameCapitalized}_USER')
password = project.hasProperty('${nameCapitalized}_PASSWORD') ? project.property('${nameCapitalized}_PASSWORD') : System.getenv('${nameCapitalized}_PASSWORD')
}
}""".replace("\n", "\n$indent")
}
val SonatypeRepository = MavenPublishingRepository("sonatype", "https://oss.sonatype.org/service/local/staging/deploy/maven2/")