Skip to content

Commit

Permalink
Update credentials setter for absent creds
Browse files Browse the repository at this point in the history
  • Loading branch information
Mr3zee committed Sep 12, 2024
1 parent 1bd0e37 commit 73e0466
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 43 deletions.
21 changes: 8 additions & 13 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
import util.getSpacePassword
import util.getSpaceUsername
import util.kotlinVersionParsed
import util.libs

Expand Down Expand Up @@ -73,23 +72,19 @@ val executeNpmLogin by tasks.registering {
val buildYarnConfigFile = File(project.rootDir, "build/js/.yarnrc")
val buildYarnYmlConfigFile = File(project.rootDir, "build/js/.yarnrc.yml")

val spaceUsername: String? = getSpaceUsername()
val spacePassword: String? = getSpacePassword()

doLast {
if (spaceUsername == null || spacePassword == null) {
return@doLast
}
var outputYarnYmlText = "npmRegistryServer: \"$registryUrl\""

if (spacePassword.split(".").size != 3) {
error("Unexpected Space Token format")
}
if (spacePassword != null) {
if (spacePassword.split(".").size != 3) {
error("Unexpected Space Token format")
}

val outputYarnYmlText = """
npmRegistryServer: "$registryUrl"
npmAlwaysAuth: true
npmAuthToken: "$spacePassword"
""".trimIndent()
outputYarnYmlText += "npmAlwaysAuth: true"
outputYarnYmlText += "npmAuthToken: \"$spacePassword\""
}

buildYarnConfigFile.createNewFile()
buildYarnConfigFile.writeText("registry: $registryUrl")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,9 @@

@file:Suppress("DuplicatedCode", "MISSING_DEPENDENCY_CLASS")

import java.util.*

pluginManagement {
fun logAbsentProperty(name: String): Nothing? {
logger.info("Property '$name' is not present for repository credentials.")
fun logAbsentProperty(name: String, env: String): Nothing? {
logger.info("Property '$name' (or env var '$env') is not present for repository credentials.")

return null
}
Expand All @@ -33,18 +31,20 @@ pluginManagement {

fun getSpaceUsername(): String? {
val username = "kotlinx.rpc.team.space.username"
val usernameEnv = "kotlinx_rpc_team_space_username"
return getLocalProperties()[username] as String?
?: settings.providers.gradleProperty(username).orNull
?: System.getenv(username)?.ifEmpty { null }
?: logAbsentProperty(username)
?: System.getenv(usernameEnv)?.ifEmpty { null }
?: logAbsentProperty(username, usernameEnv)
}

fun getSpacePassword(): String? {
val password = "kotlinx.rpc.team.space.password"
val passwordEnv = "kotlinx_rpc_team_space_password"
return getLocalProperties()[password] as String?
?: settings.providers.gradleProperty(password).orNull
?: System.getenv(password)?.ifEmpty { null }
?: logAbsentProperty(password)
?: System.getenv(passwordEnv)?.ifEmpty { null }
?: logAbsentProperty(password, passwordEnv)
}

/**
Expand All @@ -56,9 +56,15 @@ pluginManagement {
maven {
name = repoName.split("-").joinToString("") { it.replaceFirstChar { c -> c.titlecase() } }
url = uri("https://packages.jetbrains.team/maven/p/krpc/$repoName")
credentials {
username = getSpaceUsername()
password = getSpacePassword()

val username = getSpaceUsername()
val password = getSpacePassword()

if (username != null && password != null) {
credentials {
this.username = username
this.password = password
}
}
}
}
Expand All @@ -73,14 +79,14 @@ pluginManagement {
}

gradle.rootProject {
fun logAbsentProperty(name: String): Nothing? {
logger.info("Property '$name' is not present for repository credentials.")
fun logAbsentProperty(name: String, env: String): Nothing? {
logger.info("Property '$name' (or env var '$env') is not present for repository credentials.")

return null
}

fun getLocalProperties(): Properties {
return Properties().apply {
fun getLocalProperties(): java.util.Properties {
return java.util.Properties().apply {
val propertiesDir = File(
rootDir.path
.removeSuffix("/gradle-conventions")
Expand All @@ -98,18 +104,20 @@ gradle.rootProject {

fun getSpaceUsername(): String? {
val username = "kotlinx.rpc.team.space.username"
val usernameEnv = "kotlinx_rpc_team_space_username"
return getLocalProperties()[username] as String?
?: settings.providers.gradleProperty(username).orNull
?: System.getenv(username)?.ifEmpty { null }
?: logAbsentProperty(username)
?: System.getenv(usernameEnv)?.ifEmpty { null }
?: logAbsentProperty(username, usernameEnv)
}

fun getSpacePassword(): String? {
val password = "kotlinx.rpc.team.space.password"
val passwordEnv = "kotlinx_rpc_team_space_password"
return getLocalProperties()[password] as String?
?: settings.providers.gradleProperty(password).orNull
?: System.getenv(password)?.ifEmpty { null }
?: logAbsentProperty(password)
?: System.getenv(passwordEnv)?.ifEmpty { null }
?: logAbsentProperty(password, passwordEnv)
}

/**
Expand All @@ -122,9 +130,15 @@ gradle.rootProject {
name = repoName.split("-").joinToString("") { it.replaceFirstChar { c -> c.titlecase() } }

url = uri("https://packages.jetbrains.team/maven/p/krpc/$repoName")
credentials {
username = getSpaceUsername()
password = getSpacePassword()

val username = getSpaceUsername()
val password = getSpacePassword()

if (username != null && password != null) {
credentials {
this.username = username
this.password = password
}
}
}
}
Expand Down
19 changes: 11 additions & 8 deletions gradle-conventions-settings/src/main/kotlin/util/properties.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,16 @@ package util

import org.gradle.api.Project
import java.io.File
import java.util.*

fun Project.logAbsentProperty(name: String): Nothing? {
logger.info("Property '$name' is not present.")
fun Project.logAbsentProperty(name: String, env: String): Nothing? {
logger.info("Property '$name' (or env var '$env') is not present for repository credentials.")

return null
}

fun Project.getLocalProperties(): java.util.Properties {
return java.util.Properties().apply {
fun Project.getLocalProperties(): Properties {
return Properties().apply {
val propertiesDir = File(
rootDir.path
.removeSuffix("/gradle-conventions")
Expand All @@ -34,16 +35,18 @@ fun Project.getLocalProperties(): java.util.Properties {

fun Project.getSpaceUsername(): String? {
val username = "kotlinx.rpc.team.space.username"
val usernameEnv = "kotlinx_rpc_team_space_username"
return getLocalProperties()[username] as String?
?: providers.gradleProperty(username).orNull
?: System.getenv(username)?.ifEmpty { null }
?: logAbsentProperty(username)
?: System.getenv(usernameEnv)?.ifEmpty { null }
?: logAbsentProperty(username, usernameEnv)
}

fun Project.getSpacePassword(): String? {
val password = "kotlinx.rpc.team.space.password"
val passwordEnv = "kotlinx_rpc_team_space_password"
return getLocalProperties()[password] as String?
?: providers.gradleProperty(password).orNull
?: System.getenv(password)?.ifEmpty { null }
?: logAbsentProperty(password)
?: System.getenv(passwordEnv)?.ifEmpty { null }
?: logAbsentProperty(password, passwordEnv)
}

0 comments on commit 73e0466

Please sign in to comment.