mirror of
https://github.com/InsanusMokrassar/KotlinPublicationScriptsBuilder.git
synced 2024-11-24 19:18:52 +00:00
add support of JS publish scripts
This commit is contained in:
parent
c880d8e657
commit
9a95bddf08
@ -0,0 +1,27 @@
|
|||||||
|
package dev.inmo.kmppscriptbuilder.core.export
|
||||||
|
|
||||||
|
import dev.inmo.kmppscriptbuilder.core.models.GpgSigning
|
||||||
|
|
||||||
|
fun GpgSigning.generateMavenConfig() = when (this) {
|
||||||
|
GpgSigning.Disabled -> ""
|
||||||
|
GpgSigning.Optional ->
|
||||||
|
"""
|
||||||
|
if (project.hasProperty("signing.gnupg.keyName")) {
|
||||||
|
apply plugin: 'signing'
|
||||||
|
|
||||||
|
signing {
|
||||||
|
useGpgCmd()
|
||||||
|
|
||||||
|
sign publishing.publications
|
||||||
|
}
|
||||||
|
}"""
|
||||||
|
GpgSigning.Enabled ->
|
||||||
|
"""
|
||||||
|
apply plugin: 'signing'
|
||||||
|
|
||||||
|
signing {
|
||||||
|
useGpgCmd()
|
||||||
|
|
||||||
|
sign publishing.publications
|
||||||
|
}"""
|
||||||
|
}
|
@ -0,0 +1,67 @@
|
|||||||
|
package dev.inmo.kmppscriptbuilder.core.export.js_only
|
||||||
|
|
||||||
|
import dev.inmo.kmppscriptbuilder.core.export.generateMavenConfig
|
||||||
|
import dev.inmo.kmppscriptbuilder.core.models.*
|
||||||
|
|
||||||
|
fun MavenConfig.buildJsOnlyMavenConfig(licenses: List<License>): String = """
|
||||||
|
apply plugin: 'maven-publish'
|
||||||
|
|
||||||
|
task javadocJar(type: Jar) {
|
||||||
|
classifier = 'javadoc'
|
||||||
|
}
|
||||||
|
task sourcesJar(type: Jar) {
|
||||||
|
kotlin.sourceSets.all {
|
||||||
|
from(kotlin)
|
||||||
|
}
|
||||||
|
classifier = 'sources'
|
||||||
|
}
|
||||||
|
|
||||||
|
publishing {
|
||||||
|
publications {
|
||||||
|
maven(MavenPublication) {
|
||||||
|
kotlin.js().components.forEach {
|
||||||
|
from(it)
|
||||||
|
}
|
||||||
|
|
||||||
|
artifact javadocJar
|
||||||
|
artifact sourcesJar
|
||||||
|
|
||||||
|
pom {
|
||||||
|
resolveStrategy = Closure.DELEGATE_FIRST
|
||||||
|
|
||||||
|
description = "$description"
|
||||||
|
name = "$name"
|
||||||
|
url = "$url"
|
||||||
|
|
||||||
|
scm {
|
||||||
|
developerConnection = "scm:git:[fetch=]${vcsUrl}[push=]${vcsUrl}"
|
||||||
|
url = "$vcsUrl"
|
||||||
|
}
|
||||||
|
|
||||||
|
developers {
|
||||||
|
${developers.joinToString("\n") { """
|
||||||
|
developer {
|
||||||
|
id = "${it.id}"
|
||||||
|
name = "${it.name}"
|
||||||
|
email = "${it.eMail}"
|
||||||
|
}
|
||||||
|
""" }}
|
||||||
|
}
|
||||||
|
|
||||||
|
licenses {
|
||||||
|
${licenses.joinToString("\n") { """
|
||||||
|
license {
|
||||||
|
name = "${it.title}"
|
||||||
|
url = "${it.url}"
|
||||||
|
}
|
||||||
|
""" }}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
repositories {
|
||||||
|
${repositories.joinToString("\n ") { it.build(" ") }}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
${gpgSigning.generateMavenConfig()}
|
||||||
|
""".trimIndent()
|
@ -1,69 +1,64 @@
|
|||||||
package dev.inmo.kmppscriptbuilder.core.export.jvm_only
|
package dev.inmo.kmppscriptbuilder.core.export.jvm_only
|
||||||
|
|
||||||
|
import dev.inmo.kmppscriptbuilder.core.export.generateMavenConfig
|
||||||
import dev.inmo.kmppscriptbuilder.core.models.*
|
import dev.inmo.kmppscriptbuilder.core.models.*
|
||||||
|
|
||||||
fun MavenConfig.buildJvmOnlyMavenConfig(licenses: List<License>): String = """
|
fun MavenConfig.buildJvmOnlyMavenConfig(licenses: List<License>): String = """
|
||||||
apply plugin: 'maven-publish'
|
apply plugin: 'maven-publish'
|
||||||
${if (includeGpgSigning) "apply plugin: 'signing'\n" else ""}
|
|
||||||
|
|
||||||
task javadocJar(type: Jar) {
|
|
||||||
from javadoc
|
|
||||||
classifier = 'javadoc'
|
|
||||||
}
|
|
||||||
task sourcesJar(type: Jar) {
|
|
||||||
from sourceSets.main.allSource
|
|
||||||
classifier = 'sources'
|
|
||||||
}
|
|
||||||
|
|
||||||
publishing {
|
task javadocJar(type: Jar) {
|
||||||
publications {
|
from javadoc
|
||||||
maven(MavenPublication) {
|
classifier = 'javadoc'
|
||||||
from components.java
|
}
|
||||||
|
task sourcesJar(type: Jar) {
|
||||||
artifact javadocJar
|
from sourceSets.main.allSource
|
||||||
artifact sourcesJar
|
classifier = 'sources'
|
||||||
|
}
|
||||||
|
|
||||||
pom {
|
publishing {
|
||||||
resolveStrategy = Closure.DELEGATE_FIRST
|
publications {
|
||||||
|
maven(MavenPublication) {
|
||||||
|
from components.java
|
||||||
|
|
||||||
description = "$description"
|
artifact javadocJar
|
||||||
name = "$name"
|
artifact sourcesJar
|
||||||
url = "$url"
|
|
||||||
|
|
||||||
scm {
|
pom {
|
||||||
developerConnection = "scm:git:[fetch=]${vcsUrl}[push=]${vcsUrl}"
|
resolveStrategy = Closure.DELEGATE_FIRST
|
||||||
url = "$vcsUrl"
|
|
||||||
}
|
|
||||||
|
|
||||||
developers {
|
description = "$description"
|
||||||
${developers.joinToString("\n") { """
|
name = "$name"
|
||||||
developer {
|
url = "$url"
|
||||||
id = "${it.id}"
|
|
||||||
name = "${it.name}"
|
|
||||||
email = "${it.eMail}"
|
|
||||||
}
|
|
||||||
""" }}
|
|
||||||
}
|
|
||||||
|
|
||||||
licenses {
|
scm {
|
||||||
${licenses.joinToString("\n") { """
|
developerConnection = "scm:git:[fetch=]${vcsUrl}[push=]${vcsUrl}"
|
||||||
license {
|
url = "$vcsUrl"
|
||||||
name = "${it.title}"
|
|
||||||
url = "${it.url}"
|
|
||||||
}
|
|
||||||
""" }}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
repositories {
|
|
||||||
${repositories.joinToString("\n ") { it.build(" ") }}
|
developers {
|
||||||
|
${developers.joinToString("\n") { """
|
||||||
|
developer {
|
||||||
|
id = "${it.id}"
|
||||||
|
name = "${it.name}"
|
||||||
|
email = "${it.eMail}"
|
||||||
|
}
|
||||||
|
""" }}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
licenses {
|
||||||
|
${licenses.joinToString("\n") { """
|
||||||
|
license {
|
||||||
|
name = "${it.title}"
|
||||||
|
url = "${it.url}"
|
||||||
|
}
|
||||||
|
""" }}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
repositories {
|
||||||
|
${repositories.joinToString("\n ") { it.build(" ") }}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
${if (includeGpgSigning) """
|
}
|
||||||
signing {
|
${gpgSigning.generateMavenConfig()}
|
||||||
useGpgCmd()
|
""".trimIndent()
|
||||||
sign publishing.publications
|
|
||||||
}
|
|
||||||
""" else ""}
|
|
||||||
""".trimIndent()
|
|
||||||
|
@ -1,56 +1,52 @@
|
|||||||
package dev.inmo.kmppscriptbuilder.core.export.mpp
|
package dev.inmo.kmppscriptbuilder.core.export.mpp
|
||||||
|
|
||||||
|
import dev.inmo.kmppscriptbuilder.core.export.generateMavenConfig
|
||||||
import dev.inmo.kmppscriptbuilder.core.models.*
|
import dev.inmo.kmppscriptbuilder.core.models.*
|
||||||
|
|
||||||
fun MavenConfig.buildMultiplatformMavenConfig(licenses: List<License>): String = """
|
fun MavenConfig.buildMultiplatformMavenConfig(licenses: List<License>): String = """
|
||||||
apply plugin: 'maven-publish'
|
apply plugin: 'maven-publish'
|
||||||
${if (includeGpgSigning) "apply plugin: 'signing'\n" else ""}
|
|
||||||
task javadocsJar(type: Jar) {
|
|
||||||
classifier = 'javadoc'
|
|
||||||
}
|
|
||||||
|
|
||||||
publishing {
|
task javadocsJar(type: Jar) {
|
||||||
publications.all {
|
classifier = 'javadoc'
|
||||||
artifact javadocsJar
|
}
|
||||||
|
|
||||||
pom {
|
publishing {
|
||||||
description = "$description"
|
publications.all {
|
||||||
name = "$name"
|
artifact javadocsJar
|
||||||
url = "$url"
|
|
||||||
|
|
||||||
scm {
|
pom {
|
||||||
developerConnection = "scm:git:[fetch=]${vcsUrl}[push=]${vcsUrl}"
|
description = "$description"
|
||||||
url = "$vcsUrl"
|
name = "$name"
|
||||||
}
|
url = "$url"
|
||||||
|
|
||||||
developers {
|
scm {
|
||||||
${developers.joinToString("\n") { """
|
developerConnection = "scm:git:[fetch=]${vcsUrl}[push=]${vcsUrl}"
|
||||||
developer {
|
url = "$vcsUrl"
|
||||||
id = "${it.id}"
|
|
||||||
name = "${it.name}"
|
|
||||||
email = "${it.eMail}"
|
|
||||||
}
|
|
||||||
""" }}
|
|
||||||
}
|
|
||||||
|
|
||||||
licenses {
|
|
||||||
${licenses.joinToString("\n") { """
|
|
||||||
license {
|
|
||||||
name = "${it.title}"
|
|
||||||
url = "${it.url}"
|
|
||||||
}
|
|
||||||
""" }}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
repositories {
|
|
||||||
${repositories.joinToString("\n ") { it.build(" ") }}
|
developers {
|
||||||
|
${developers.joinToString("\n") { """
|
||||||
|
developer {
|
||||||
|
id = "${it.id}"
|
||||||
|
name = "${it.name}"
|
||||||
|
email = "${it.eMail}"
|
||||||
|
}
|
||||||
|
""" }}
|
||||||
|
}
|
||||||
|
|
||||||
|
licenses {
|
||||||
|
${licenses.joinToString("\n") { """
|
||||||
|
license {
|
||||||
|
name = "${it.title}"
|
||||||
|
url = "${it.url}"
|
||||||
|
}
|
||||||
|
""" }}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
repositories {
|
||||||
|
${repositories.joinToString("\n ") { it.build(" ") }}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
${if (includeGpgSigning) """
|
}
|
||||||
signing {
|
${gpgSigning.generateMavenConfig()}
|
||||||
useGpgCmd()
|
""".trimIndent()
|
||||||
sign publishing.publications
|
|
||||||
}
|
|
||||||
""" else ""}
|
|
||||||
""".trimIndent()
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package dev.inmo.kmppscriptbuilder.core.models
|
package dev.inmo.kmppscriptbuilder.core.models
|
||||||
|
|
||||||
|
import dev.inmo.kmppscriptbuilder.core.export.js_only.buildJsOnlyMavenConfig
|
||||||
import dev.inmo.kmppscriptbuilder.core.export.jvm_only.buildJvmOnlyMavenConfig
|
import dev.inmo.kmppscriptbuilder.core.export.jvm_only.buildJvmOnlyMavenConfig
|
||||||
import dev.inmo.kmppscriptbuilder.core.export.mpp.buildMultiplatformMavenConfig
|
import dev.inmo.kmppscriptbuilder.core.export.mpp.buildMultiplatformMavenConfig
|
||||||
import kotlinx.serialization.*
|
import kotlinx.serialization.*
|
||||||
@ -32,12 +33,6 @@ object ProjectTypeSerializer : KSerializer<ProjectType> {
|
|||||||
|
|
||||||
object MultiplatformProjectType : ProjectType() {
|
object MultiplatformProjectType : ProjectType() {
|
||||||
override val name: String = "Multiplatform"
|
override val name: String = "Multiplatform"
|
||||||
// override fun buildBintrayGradleConfig(
|
|
||||||
// bintrayConfig: BintrayConfig,
|
|
||||||
// licenses: List<License>
|
|
||||||
// ): String = bintrayConfig.buildMultiplatformGradleConfig(
|
|
||||||
// licenses
|
|
||||||
// )
|
|
||||||
|
|
||||||
override fun buildMavenGradleConfig(
|
override fun buildMavenGradleConfig(
|
||||||
mavenConfig: MavenConfig,
|
mavenConfig: MavenConfig,
|
||||||
@ -49,12 +44,6 @@ object MultiplatformProjectType : ProjectType() {
|
|||||||
|
|
||||||
object JVMProjectType : ProjectType() {
|
object JVMProjectType : ProjectType() {
|
||||||
override val name: String = "JVM"
|
override val name: String = "JVM"
|
||||||
// override fun buildBintrayGradleConfig(
|
|
||||||
// bintrayConfig: BintrayConfig,
|
|
||||||
// licenses: List<License>
|
|
||||||
// ): String = bintrayConfig.buildJvmOnlyGradleConfig(
|
|
||||||
// licenses
|
|
||||||
// )
|
|
||||||
|
|
||||||
override fun buildMavenGradleConfig(
|
override fun buildMavenGradleConfig(
|
||||||
mavenConfig: MavenConfig,
|
mavenConfig: MavenConfig,
|
||||||
@ -64,6 +53,15 @@ object JVMProjectType : ProjectType() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
object JSProjectType : ProjectType() {
|
||||||
|
override val name: String = "JS"
|
||||||
|
|
||||||
|
override fun buildMavenGradleConfig(
|
||||||
|
mavenConfig: MavenConfig,
|
||||||
|
licenses: List<License>
|
||||||
|
): String = mavenConfig.buildJsOnlyMavenConfig(licenses)
|
||||||
|
}
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class Config(
|
data class Config(
|
||||||
val licenses: List<License>,
|
val licenses: List<License>,
|
||||||
|
@ -5,15 +5,27 @@ import kotlinx.serialization.Serializable
|
|||||||
const val defaultProjectName = "\${project.name}"
|
const val defaultProjectName = "\${project.name}"
|
||||||
const val defaultProjectDescription = "\${project.name}"
|
const val defaultProjectDescription = "\${project.name}"
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
sealed class GpgSigning {
|
||||||
|
@Serializable
|
||||||
|
object Disabled : GpgSigning()
|
||||||
|
@Serializable
|
||||||
|
object Optional : GpgSigning()
|
||||||
|
@Serializable
|
||||||
|
object Enabled : GpgSigning()
|
||||||
|
}
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
data class MavenConfig(
|
data class MavenConfig(
|
||||||
val name: String,
|
val name: String,
|
||||||
val description: String,
|
val description: String,
|
||||||
val url: String,
|
val url: String,
|
||||||
val vcsUrl: String,
|
val vcsUrl: String,
|
||||||
val includeGpgSigning: Boolean = false,
|
|
||||||
val developers: List<Developer>,
|
val developers: List<Developer>,
|
||||||
val repositories: List<MavenPublishingRepository> = emptyList()
|
val repositories: List<MavenPublishingRepository> = emptyList(),
|
||||||
|
val gpgSigning: GpgSigning = GpgSigning.Disabled,
|
||||||
|
@Deprecated("Replaced with gpgSigning")
|
||||||
|
val includeGpgSigning: Boolean = false,
|
||||||
)
|
)
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
|
@ -10,7 +10,7 @@ class MavenInfoView : VerticalView("Project information") {
|
|||||||
private var projectDescriptionProperty by mutableStateOf("")
|
private var projectDescriptionProperty by mutableStateOf("")
|
||||||
private var projectUrlProperty by mutableStateOf("")
|
private var projectUrlProperty by mutableStateOf("")
|
||||||
private var projectVcsUrlProperty by mutableStateOf("")
|
private var projectVcsUrlProperty by mutableStateOf("")
|
||||||
private var includeGpgSignProperty by mutableStateOf(true)
|
private var gpgSignProperty by mutableStateOf<GpgSigning>(GpgSigning.Disabled)
|
||||||
private var publishToMavenCentralProperty by mutableStateOf(false)
|
private var publishToMavenCentralProperty by mutableStateOf(false)
|
||||||
private val developersView = DevelopersView()
|
private val developersView = DevelopersView()
|
||||||
private val repositoriesView = RepositoriesView()
|
private val repositoriesView = RepositoriesView()
|
||||||
@ -21,20 +21,24 @@ class MavenInfoView : VerticalView("Project information") {
|
|||||||
projectDescriptionProperty.ifBlank { defaultProjectDescription },
|
projectDescriptionProperty.ifBlank { defaultProjectDescription },
|
||||||
projectUrlProperty,
|
projectUrlProperty,
|
||||||
projectVcsUrlProperty,
|
projectVcsUrlProperty,
|
||||||
includeGpgSignProperty,
|
|
||||||
developersView.developers,
|
developersView.developers,
|
||||||
repositoriesView.repositories + if (publishToMavenCentralProperty) {
|
repositoriesView.repositories + if (publishToMavenCentralProperty) {
|
||||||
listOf(SonatypeRepository)
|
listOf(SonatypeRepository)
|
||||||
} else {
|
} else {
|
||||||
emptyList()
|
emptyList()
|
||||||
}
|
},
|
||||||
|
gpgSignProperty
|
||||||
)
|
)
|
||||||
set(value) {
|
set(value) {
|
||||||
projectNameProperty = value.name
|
projectNameProperty = value.name
|
||||||
projectDescriptionProperty = value.description
|
projectDescriptionProperty = value.description
|
||||||
projectUrlProperty = value.url
|
projectUrlProperty = value.url
|
||||||
projectVcsUrlProperty = value.vcsUrl
|
projectVcsUrlProperty = value.vcsUrl
|
||||||
includeGpgSignProperty = value.includeGpgSigning
|
gpgSignProperty = if (value.includeGpgSigning) {
|
||||||
|
GpgSigning.Enabled
|
||||||
|
} else {
|
||||||
|
value.gpgSigning
|
||||||
|
}
|
||||||
publishToMavenCentralProperty = value.repositories.any { it == SonatypeRepository }
|
publishToMavenCentralProperty = value.repositories.any { it == SonatypeRepository }
|
||||||
developersView.developers = value.developers
|
developersView.developers = value.developers
|
||||||
repositoriesView.repositories = value.repositories.filter { it != SonatypeRepository }
|
repositoriesView.repositories = value.repositories.filter { it != SonatypeRepository }
|
||||||
@ -59,11 +63,12 @@ class MavenInfoView : VerticalView("Project information") {
|
|||||||
"Public project VCS URL (with .git)"
|
"Public project VCS URL (with .git)"
|
||||||
) { projectVcsUrlProperty = it }
|
) { projectVcsUrlProperty = it }
|
||||||
|
|
||||||
SwitchWithLabel(
|
|
||||||
"Include GPG Signing",
|
// SwitchWithLabel(
|
||||||
includeGpgSignProperty,
|
// "Include GPG Signing",
|
||||||
placeSwitchAtTheStart = true
|
// includeGpgSignProperty,
|
||||||
) { includeGpgSignProperty = it }
|
// placeSwitchAtTheStart = true
|
||||||
|
// ) { includeGpgSignProperty = it }
|
||||||
|
|
||||||
SwitchWithLabel(
|
SwitchWithLabel(
|
||||||
"Include publication to MavenCentral",
|
"Include publication to MavenCentral",
|
||||||
@ -73,4 +78,4 @@ class MavenInfoView : VerticalView("Project information") {
|
|||||||
developersView.init()
|
developersView.init()
|
||||||
repositoriesView.init()
|
repositoriesView.init()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package dev.inmo.kmppscriptbuilder.web.views
|
package dev.inmo.kmppscriptbuilder.web.views
|
||||||
|
|
||||||
import dev.inmo.kmppscriptbuilder.core.models.*
|
import dev.inmo.kmppscriptbuilder.core.models.*
|
||||||
|
import dev.inmo.kmppscriptbuilder.web.utils.ukActive
|
||||||
import kotlinx.browser.document
|
import kotlinx.browser.document
|
||||||
import org.w3c.dom.HTMLElement
|
import org.w3c.dom.HTMLElement
|
||||||
import org.w3c.dom.HTMLInputElement
|
import org.w3c.dom.HTMLInputElement
|
||||||
@ -10,23 +11,51 @@ class MavenProjectInfoView : View {
|
|||||||
private val descriptionElement = document.getElementById("projectDescriptionInput") as HTMLInputElement
|
private val descriptionElement = document.getElementById("projectDescriptionInput") as HTMLInputElement
|
||||||
private val urlElement = document.getElementById("projectUrlInput") as HTMLInputElement
|
private val urlElement = document.getElementById("projectUrlInput") as HTMLInputElement
|
||||||
private val vcsUrlElement = document.getElementById("projectVCSUrlInput") as HTMLInputElement
|
private val vcsUrlElement = document.getElementById("projectVCSUrlInput") as HTMLInputElement
|
||||||
private val includeGpgElement = document.getElementById("includeGpgSignToggle") as HTMLInputElement
|
private val disableGpgSigningElement = document.getElementById("disableGpgSigning") as HTMLElement
|
||||||
|
private val optionalGpgSigningElement = document.getElementById("optionalGpgSigning") as HTMLElement
|
||||||
|
private val enableGpgSigningElement = document.getElementById("enableGpgSigning") as HTMLElement
|
||||||
private val includeMavenCentralElement = document.getElementById("includeMavenCentralTargetRepoToggle") as HTMLInputElement
|
private val includeMavenCentralElement = document.getElementById("includeMavenCentralTargetRepoToggle") as HTMLInputElement
|
||||||
private val developersView = DevelopersView(document.getElementById("developersListDiv") as HTMLElement)
|
private val developersView = DevelopersView(document.getElementById("developersListDiv") as HTMLElement)
|
||||||
private val repositoriesView = RepositoriesView(document.getElementById("repositoriesListDiv") as HTMLElement)
|
private val repositoriesView = RepositoriesView(document.getElementById("repositoriesListDiv") as HTMLElement)
|
||||||
|
|
||||||
|
private var gpgSignMode: GpgSigning = GpgSigning.Disabled
|
||||||
|
set(value) {
|
||||||
|
field = value
|
||||||
|
when (value) {
|
||||||
|
GpgSigning.Enabled -> {
|
||||||
|
enableGpgSigningElement.ukActive = true
|
||||||
|
disableGpgSigningElement.ukActive = false
|
||||||
|
optionalGpgSigningElement.ukActive = false
|
||||||
|
}
|
||||||
|
GpgSigning.Optional -> {
|
||||||
|
enableGpgSigningElement.ukActive = false
|
||||||
|
disableGpgSigningElement.ukActive = false
|
||||||
|
optionalGpgSigningElement.ukActive = true
|
||||||
|
}
|
||||||
|
GpgSigning.Disabled -> {
|
||||||
|
enableGpgSigningElement.ukActive = false
|
||||||
|
disableGpgSigningElement.ukActive = true
|
||||||
|
optionalGpgSigningElement.ukActive = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var mavenConfig: MavenConfig
|
var mavenConfig: MavenConfig
|
||||||
get() = MavenConfig(
|
get() = MavenConfig(
|
||||||
nameElement.value.ifBlank { defaultProjectName },
|
nameElement.value.ifBlank { defaultProjectName },
|
||||||
descriptionElement.value.ifBlank { defaultProjectDescription },
|
descriptionElement.value.ifBlank { defaultProjectDescription },
|
||||||
urlElement.value,
|
urlElement.value,
|
||||||
vcsUrlElement.value,
|
vcsUrlElement.value,
|
||||||
includeGpgElement.checked,
|
|
||||||
developersView.developers,
|
developersView.developers,
|
||||||
repositoriesView.repositories + if (includeMavenCentralElement.checked) {
|
repositoriesView.repositories + if (includeMavenCentralElement.checked) {
|
||||||
listOf(SonatypeRepository)
|
listOf(SonatypeRepository)
|
||||||
} else {
|
} else {
|
||||||
emptyList()
|
emptyList()
|
||||||
|
},
|
||||||
|
when {
|
||||||
|
optionalGpgSigningElement.ukActive -> GpgSigning.Optional
|
||||||
|
enableGpgSigningElement.ukActive -> GpgSigning.Enabled
|
||||||
|
else -> GpgSigning.Disabled
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
set(value) {
|
set(value) {
|
||||||
@ -34,10 +63,20 @@ class MavenProjectInfoView : View {
|
|||||||
descriptionElement.value = value.description
|
descriptionElement.value = value.description
|
||||||
urlElement.value = value.url
|
urlElement.value = value.url
|
||||||
vcsUrlElement.value = value.vcsUrl
|
vcsUrlElement.value = value.vcsUrl
|
||||||
includeGpgElement.checked = value.includeGpgSigning
|
gpgSignMode = if (value.includeGpgSigning) {
|
||||||
|
GpgSigning.Enabled
|
||||||
|
} else {
|
||||||
|
value.gpgSigning
|
||||||
|
}
|
||||||
developersView.developers = value.developers
|
developersView.developers = value.developers
|
||||||
val reposWithoutSonatype = value.repositories.filter { it != SonatypeRepository }
|
val reposWithoutSonatype = value.repositories.filter { it != SonatypeRepository }
|
||||||
includeMavenCentralElement.checked = value.repositories.size != reposWithoutSonatype.size
|
includeMavenCentralElement.checked = value.repositories.size != reposWithoutSonatype.size
|
||||||
repositoriesView.repositories = reposWithoutSonatype
|
repositoriesView.repositories = reposWithoutSonatype
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
init {
|
||||||
|
enableGpgSigningElement.onclick = { gpgSignMode = GpgSigning.Enabled; Unit }
|
||||||
|
disableGpgSigningElement.onclick = { gpgSignMode = GpgSigning.Disabled; Unit }
|
||||||
|
optionalGpgSigningElement.onclick = { gpgSignMode = GpgSigning.Optional; Unit }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -8,16 +8,18 @@ import org.w3c.dom.HTMLElement
|
|||||||
class ProjectTypeView : View {
|
class ProjectTypeView : View {
|
||||||
private val mppProjectTypeElement = document.getElementById("mppProjectType") as HTMLElement
|
private val mppProjectTypeElement = document.getElementById("mppProjectType") as HTMLElement
|
||||||
private val jvmProjectTypeElement = document.getElementById("jvmProjectType") as HTMLElement
|
private val jvmProjectTypeElement = document.getElementById("jvmProjectType") as HTMLElement
|
||||||
|
private val jsProjectTypeElement = document.getElementById("jsProjectType") as HTMLElement
|
||||||
|
|
||||||
var projectType: ProjectType
|
var projectType: ProjectType
|
||||||
get() = if (jvmProjectTypeElement.ukActive) {
|
get() = when {
|
||||||
JVMProjectType
|
jvmProjectTypeElement.ukActive -> JVMProjectType
|
||||||
} else {
|
jsProjectTypeElement.ukActive -> JSProjectType
|
||||||
MultiplatformProjectType
|
else -> MultiplatformProjectType
|
||||||
}
|
}
|
||||||
set(value) {
|
set(value) {
|
||||||
mppProjectTypeElement.ukActive = value == MultiplatformProjectType
|
mppProjectTypeElement.ukActive = value == MultiplatformProjectType
|
||||||
jvmProjectTypeElement.ukActive = value == JVMProjectType
|
jvmProjectTypeElement.ukActive = value == JVMProjectType
|
||||||
|
jsProjectTypeElement.ukActive = value == JSProjectType
|
||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
@ -29,5 +31,9 @@ class ProjectTypeView : View {
|
|||||||
projectType = JVMProjectType
|
projectType = JVMProjectType
|
||||||
Unit
|
Unit
|
||||||
}
|
}
|
||||||
|
jsProjectTypeElement.onclick = {
|
||||||
|
projectType = JSProjectType
|
||||||
|
Unit
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,15 +27,11 @@
|
|||||||
<ul class="uk-subnav uk-subnav-pill">
|
<ul class="uk-subnav uk-subnav-pill">
|
||||||
<li id="mppProjectType" class="uk-active"><a href="#">Multiplatform</a></li>
|
<li id="mppProjectType" class="uk-active"><a href="#">Multiplatform</a></li>
|
||||||
<li id="jvmProjectType"><a href="#">JVM</a></li>
|
<li id="jvmProjectType"><a href="#">JVM</a></li>
|
||||||
|
<li id="jsProjectType"><a href="#">JS</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<legend class="uk-legend">Licenses</legend>
|
<legend class="uk-legend">Licenses</legend>
|
||||||
<div id="licensesListDiv" class="uk-padding-small">
|
<div id="licensesListDiv" class="uk-padding-small"></div>
|
||||||
<!-- <div class="uk-margin uk-width-1-1">-->
|
|
||||||
<!-- <input id="searchFilterInput" class="uk-input uk-width-expand" type="text" placeholder="License search filter">-->
|
|
||||||
<!-- </div>-->
|
|
||||||
<!-- <button class="uk-button uk-button-primary">Add empty license</button>-->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<legend class="uk-legend">Project information</legend>
|
<legend class="uk-legend">Project information</legend>
|
||||||
|
|
||||||
@ -58,7 +54,15 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="uk-margin">
|
<div class="uk-margin">
|
||||||
<label><input id="includeGpgSignToggle" class="uk-checkbox" type="checkbox" checked> Include GPG Signing</label>
|
<label>GPG Signing</label>
|
||||||
|
|
||||||
|
<div class="uk-padding-small">
|
||||||
|
<ul class="uk-subnav uk-subnav-pill">
|
||||||
|
<li id="disableGpgSigning" class="uk-active" uk-tooltip="title: Signing will not be added"><a href="#">Disabled</a></li>
|
||||||
|
<li id="optionalGpgSigning" uk-tooltip="title: Signing will be added, but disabled in case of absence 'signatory.keyId'"><a href="#">Optional</a></li>
|
||||||
|
<li id="enableGpgSigning" uk-tooltip="title: Signing will be always enabled"><a href="#">Enabled</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="uk-margin">
|
<div class="uk-margin">
|
||||||
<label><input id="includeMavenCentralTargetRepoToggle" class="uk-checkbox" type="checkbox"> Include publication to MavenCentral</label>
|
<label><input id="includeMavenCentralTargetRepoToggle" class="uk-checkbox" type="checkbox"> Include publication to MavenCentral</label>
|
||||||
@ -78,4 +82,4 @@
|
|||||||
<!-- Internal JS -->
|
<!-- Internal JS -->
|
||||||
<script src="kmppscriptbuilder.web.js"></script>
|
<script src="kmppscriptbuilder.web.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
Loading…
Reference in New Issue
Block a user