commonMain.coreutils.EchoSamples.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kommandsamples-jvm Show documentation
Show all versions of kommandsamples-jvm Show documentation
Kotlin DSL for popular CLI commands.
package pl.mareklangiewicz.kommand.core
import pl.mareklangiewicz.annotations.DelicateApi
import pl.mareklangiewicz.kommand.core.EchoOpt.*
import pl.mareklangiewicz.kommand.samples.*
@OptIn(DelicateApi::class)
data object EchoSamples {
val echoHelp = echo { -Help } s "echo --help"
val echoVersion = echo { -Version } s "echo --version"
val echoBla = echo("bla") s "echo bla"
val echoBlaWithoutNewLine = echo("bla", withNewLine = false) s "echo -n bla"
val echoTwoParagraphsWithEscapes =
echo(paragraphsEscaped, withEscapes = true) s "echo -e $paragraphsEscaped"
}
// it's escaped on echo input level. the kotlin string doesn't contain any special chars.
// that's why backslash has to be repeated here, so kotlin compiler doesn't interpret \t \n , etc. as special chars.
private const val paragraphsEscaped =
"\\tparagraph 1 line1\\nparagraph 2 line 2\\n\\n\\tparagraph 2 line 1\\nparagraph 2 line 2"