From e544840c32118ec8bb6069cbe597526d1d3d2179 Mon Sep 17 00:00:00 2001 From: Nicolas Farabegoli Date: Fri, 25 Aug 2023 08:52:13 +0200 Subject: [PATCH] fix: solve a problem with terminal colors in macOS. Closes #199 --- build.gradle.kts | 4 ++-- gradle/libs.versions.toml | 1 + .../nicolasfarabegoli/gradle/ConventionalCommitsExtension.kt | 5 +++-- .../it/nicolasfarabegoli/gradle/ConventionalCommitsTest.kt | 4 ++-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 3544bee..3c7ddba 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,7 +3,6 @@ import org.gradle.api.tasks.testing.logging.TestLogEvent import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION as KOTLIN_VERSION -@Suppress("DSL_SCOPE_VIOLATION") plugins { `java-gradle-plugin` alias(libs.plugins.kotlin.jvm) @@ -43,6 +42,7 @@ dependencies { api(gradleKotlinDsl()) testImplementation(gradleTestKit()) testImplementation(libs.bundles.kotest) + implementation(libs.mordant) } tasks.withType { @@ -123,5 +123,5 @@ publishOnCentral { } detekt { - config = files("./detekt.yml") + config.setFrom("${rootDir.absolutePath}/detekt.yml") } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 274a7dc..45e3428 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,6 +8,7 @@ detekt = "1.23.0" [libraries] kotest-junit = { module = "io.kotest:kotest-runner-junit5", version.ref = "kotest" } kotest-assertions-jvm = { module = "io.kotest:kotest-assertions-core-jvm", version.ref = "kotest" } +mordant = { module = "com.github.ajalt.mordant:mordant", version = "2.1.0" } [bundles] kotest = ["kotest-junit", "kotest-assertions-jvm"] diff --git a/src/main/kotlin/it/nicolasfarabegoli/gradle/ConventionalCommitsExtension.kt b/src/main/kotlin/it/nicolasfarabegoli/gradle/ConventionalCommitsExtension.kt index 3c6c0f4..257da10 100644 --- a/src/main/kotlin/it/nicolasfarabegoli/gradle/ConventionalCommitsExtension.kt +++ b/src/main/kotlin/it/nicolasfarabegoli/gradle/ConventionalCommitsExtension.kt @@ -1,5 +1,6 @@ package it.nicolasfarabegoli.gradle +import com.github.ajalt.mordant.rendering.TextColors import org.gradle.api.Project /** @@ -41,13 +42,13 @@ open class ConventionalCommitsExtension(private val project: Project) { /** * The message that will be shown if the commit is conventional commit compliant. */ - var successMessage: String? = "\\e[32mCommit message meets Conventional Commit standards...\\e[0m" + var successMessage: String? = TextColors.green("Commit message meets Conventional Commit standards...") /** * The message that will be shown if the commit is not conventional commit compliant. */ var failureMessage: String? = """ - \e[31mThe commit message does not meet the Conventional Commit standard\e[0m + ${TextColors.red("The commit message does not meet the Conventional Commit standard")} An example of a valid message is: feat(login): add the 'remember me' button More details at: https://www.conventionalcommits.org/en/v1.0.0/#summary diff --git a/src/test/kotlin/it/nicolasfarabegoli/gradle/ConventionalCommitsTest.kt b/src/test/kotlin/it/nicolasfarabegoli/gradle/ConventionalCommitsTest.kt index 9631f34..fed501d 100644 --- a/src/test/kotlin/it/nicolasfarabegoli/gradle/ConventionalCommitsTest.kt +++ b/src/test/kotlin/it/nicolasfarabegoli/gradle/ConventionalCommitsTest.kt @@ -35,7 +35,7 @@ class ConventionalCommitsTest : WordSpec({ projectDirectory.resolve(".git/hooks/commit-msg").exists() shouldBe true projectDirectory.resolve(".git/hooks/commit-msg") - .readText() shouldContain "\\e[32mCommit message meets Conventional Commit standards...\\e[0m" + .readText() shouldContain "Commit message meets Conventional Commit standards..." // Test if `'` character is correctly escaped into `\x27` projectDirectory.resolve(".git/hooks/commit-msg") .readText() shouldContain "feat(login): add the \\\\x27remember me\\\\x27 button" @@ -168,7 +168,7 @@ class ConventionalCommitsTest : WordSpec({ projectDirectory.resolve(".git/hooks/commit-msg").exists() shouldBe true projectDirectory.resolve(".git/hooks/commit-msg") - .readText() shouldContain "\\e[32mCommit message meets Conventional Commit standards...\\e[0m" + .readText() shouldContain "Commit message meets Conventional Commit standards..." // Test if `'` character is correctly escaped into `\x27` projectDirectory.resolve(".git/hooks/commit-msg") .readText() shouldContain "feat(login): add the \\\\x27remember me\\\\x27 button"