On se retrouve aujourd'hui pour la solution du précédent #KataOfTheWeek proposé par Jonathan en début de semaine !
Voici une implémentation simpliste en kotlin :
class SimpleGrep {
fun main(args: Array<String>) {
kotlin.runCatching {
val searchString = args[0]
val file = args[1]
if (searchString.isNotEmpty()) {
File(file).useLines { lines ->
lines.filter { searchString in it }.forEach {
println(it)
}
}
}
}.onFailure { err ->
when (err) {
is ArrayIndexOutOfBoundsException -> printUsage()
is FileNotFoundException -> printNoSuchFile()
else -> throw err
}
}
}
private fun printUsage() =
println(
"""
Two arguments expected
Usage: simple-grep [searchStr] [file]
""".trimIndent()
)
private fun printNoSuchFile() =
println(
"""
simple-grep: file passed as argument does not exist
""".trimIndent()
)
}
A bientôt pour un nouveau #KataOfTheWeek !