diff --git a/src/commonMain/kotlin/com/infendro/cli/command/Command.kt b/src/commonMain/kotlin/com/infendro/cli/command/Command.kt index bd438c7..6154854 100644 --- a/src/commonMain/kotlin/com/infendro/cli/command/Command.kt +++ b/src/commonMain/kotlin/com/infendro/cli/command/Command.kt @@ -1,6 +1,5 @@ package com.infendro.cli.command -import com.infendro.cli.command.Execution import com.infendro.cli.argument.Argument import com.infendro.cli.exception.build.* import com.infendro.cli.exception.run.ArgumentCountException @@ -24,8 +23,7 @@ class Command private constructor( fun run( args: Array, ) { - val index = args - .withIndex() + val index = args.withIndex() .find { (_, value) -> value.startsWith("--") } ?.index ?: args.size @@ -89,12 +87,11 @@ class Command private constructor( result += Execution.Arg(name, value) } - arguments - .forEach { argument -> - val count = result.count { it.name == argument.name } - if (count !in argument.min..argument.max) - throw ArgumentCountException(argument.name, argument.min, argument.max) - } + arguments.forEach { argument -> + val count = result.count { it.name == argument.name } + if (count !in argument.min..argument.max) + throw ArgumentCountException(argument.name, argument.min, argument.max) + } return result } @@ -164,7 +161,7 @@ class Command private constructor( } } - class Key( + class Key internal constructor( internal val index: Int, ) } diff --git a/src/commonMain/kotlin/com/infendro/cli/command/Execution.kt b/src/commonMain/kotlin/com/infendro/cli/command/Execution.kt index 7e2c13b..a6c305d 100644 --- a/src/commonMain/kotlin/com/infendro/cli/command/Execution.kt +++ b/src/commonMain/kotlin/com/infendro/cli/command/Execution.kt @@ -19,45 +19,29 @@ class Execution( operator fun Command.Key.getValue( thisRef: Any?, property: KProperty<*>, - ): String { - return commands[index] - .name - } + ): String = commands[index].name operator fun Argument.Single.getValue( thisRef: Any?, property: KProperty<*>, - ): T { - return arguments - .single { it.name == name } - .let { parser.parse(it.value) } - } + ): T = arguments.single { it.name == name } + .let { parser.parse(it.value) } operator fun Argument.SingleOrElse.getValue( thisRef: Any?, property: KProperty<*>, - ): T { - return arguments - .singleOrNull { it.name == name } - ?.let { parser.parse(it.value) } - ?: other - } + ): T = arguments.singleOrNull { it.name == name } + ?.let { parser.parse(it.value) } ?: other operator fun Argument.SingleOrNull.getValue( thisRef: Any?, property: KProperty<*>, - ): T? { - return arguments - .singleOrNull { it.name == name } - ?.let { parser.parse(it.value) } - } + ): T? = arguments.singleOrNull { it.name == name } + ?.let { parser.parse(it.value) } operator fun Argument.Multiple.getValue( thisRef: Any?, property: KProperty<*>, - ): List { - return arguments - .filter { it.name == name } - .map { parser.parse(it.value) } - } -} \ No newline at end of file + ): List = arguments.filter { it.name == name } + .map { parser.parse(it.value) } +} diff --git a/src/commonMain/kotlin/com/infendro/cli/util/Regex.kt b/src/commonMain/kotlin/com/infendro/cli/util/Regex.kt index f626669..b0fc020 100644 --- a/src/commonMain/kotlin/com/infendro/cli/util/Regex.kt +++ b/src/commonMain/kotlin/com/infendro/cli/util/Regex.kt @@ -4,4 +4,4 @@ internal object Regex { val COMMAND_NAME = """[a-z]+(?:-[a-z]+)*""".toRegex() val ARGUMENT_NAME = """[a-z]+(?:[\-.][a-z]+)*""".toRegex() val ARGUMENT = """--(?[a-z]+(?:[\-.][a-z]+)*)(?:=(?.*))?""".toRegex() -} \ No newline at end of file +}