Table of contents
- Colorful console logging
- How to import this dependency into gradle (using JitPack)
- Publishing this to JitPack
- GitHub Packages Registry (deprecated 2021-04-12)
This is a small library that provides a simple Kotlin DSL in order to colorize console log output w/ ANSI characters.
Here's an example of how to use this:
fun main() {
// Example 1.
colorConsole {//this: ColorConsoleContext
printLine {//this: MutableList<String>
span(Purple, "word1")
span("word2")
span(Blue, "word3")
}
printLine {//this: MutableList<String>
span(Green, "word1")
span(Purple, "word2")
}
println(
line {//this: MutableList<String>
add(Green("word1"))
add(Blue("word2"))
})
}
// Example 2.
val map = mapOf(
"Key1" to "Value1",
"Key2" to "Value2",
)
colorConsole {
printLine(spanSeparator = "\n") {
span(Red("Printing map line 1"))
span(Green, "Printing map line 2")
map.forEach { (label, value) ->
// Each span is on a separate line as spanSeparator is \n
span("${Cyan(label)}: ${White(value)}")
}
}
}
}
You can import this dependency into your gradle projects by making the following changes to your
build.gradle
or build.gradle.kts
file.
-
Add this at the end of your
repositories
section.For
build.gradle
:repositories { repositories {maven { url 'https://jitpack.io' }} }
For
build.gradle.kts
:repositories { maven{ url = uri("https://jitpack.io") } }
-
Add the dependency.
For
build.gradle
:dependencies { implementation 'com.github.nazmulidris:color-console:1.0.0' }
For
build.gradle.kts
:dependencies { implementation ("com.github.nazmulidris:color-console:1.0.0") }
Information about this dependency on JitPack:
This developerlife.com article has extensive details on how to publish a library to JitPack with this library as the example.
In order to load the package for the library from GitHub Packages Registry, the
official docs
provide some detailed examples of the provider side of things. And you can extrapolate what the
consumer side of things might look like. The biggest thing to keep in mind is that a read:packages
scoped GitHub personal access token will be required by the consumer of the package (and has to be
accessible their build.gradle
or build.gradle.kts
file).
Make sure to provide the following environment variables before you import this package.
GITHUB_PACKAGES_IMPORT_TOKEN
- this token hasread:packages
scope. This is ok to share.GITHUB_PACKAGES_USERID
- this is the GitHub username for the token. This is ok to share.
Here is more information on how to declare your own maven repositories using gradle.
To import this library into your Gradle project, please add the following lines in your
build.gradle
file in order to use this library (in Groovy).
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/nazmulidris/color-console")
credentials {
username = System.getenv("GITHUB_PACKAGES_USERID") ?: "nazmulidris"
// Safe to share the password since it is a `read:package` scoped token.
password = System.getenv("GITHUB_PACKAGES_IMPORT_TOKEN") ?:
"22e9ba0d47c3e9116a2f1023867a1985beebfb60"
}
}
}
dependencies {
implementation 'com.developerlife:color-console:1.0'
}
Here's the Kotlin DSL version for build.gradle.kts
:
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/nazmulidris/color-console")
credentials {
username = System.getenv("GITHUB_PACKAGES_USERID") ?: "nazmulidris"
password =
System.getenv("GITHUB_PACKAGES_IMPORT_TOKEN") ?: "22e9ba0d47c3e9116a2f1023867a1985beebfb60"
}
}
}
dependencies {
implementation("com.developerlife:color-console:1.0")
}
💡 To learn how to publish a library to GitHub Package Repository as a gradle dependency, please read this tutorial.
In order to test whether this is deployed locally, you can use the following command
./gradlew publishToMavenLocal
. This should dump the dependency on your local machine in the
following folder $HOME/.m2/repository/com/developerlife/color-console/
. Just look for a folder
with the version number in there, which will contain all the generated artifacts.
Once you have verified that everything is working locally, it is time to publish it to the GitHub
Package Registry. Use ./gradlew publish
to do this. In order to do this the following environment
variables need to be set:
GITHUB_PACKAGES_PUBLISH_TOKEN
- this token hasrepo, write:packages
scope. Do NOT share this!GITHUB_PACKAGES_USERID
- this is the GitHub username for the token. This is ok to share.