Bash, Powershell, ou ... ? - Solution

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 !

TakiVeille

TakiVeille