diff --git a/src/commonMain/kotlin/com/infendro/cli/command/Command.kt b/src/commonMain/kotlin/com/infendro/cli/command/Command.kt index b0ae597..1690d9f 100644 --- a/src/commonMain/kotlin/com/infendro/cli/command/Command.kt +++ b/src/commonMain/kotlin/com/infendro/cli/command/Command.kt @@ -7,11 +7,9 @@ import com.infendro.cli.command.context.ContextParser import com.infendro.cli.command.help.DefaultHelpRenderer import com.infendro.cli.command.help.HelpRenderer import com.infendro.cli.command.option.Option -import com.infendro.cli.exception.build.* +import com.infendro.cli.error.build.* import com.infendro.cli.parser.* import com.infendro.cli.util.Regex -import com.infendro.cli.util.Regex.ARGUMENT -import com.infendro.cli.util.Regex.OPTION import kotlin.reflect.KProperty sealed class Command private constructor( @@ -205,15 +203,11 @@ sealed class Command private constructor( argument.required && last.optional -> throw InvalidArgumentOrder() } } - if (!argument.name.matches(ARGUMENT)) throw InvalidArgument(argument.name) } private fun validateOption(option: Option<*>) { for (name in option.names) { - when { - !name.matches(OPTION) -> throw InvalidOption(name) - options.any { name in it.names } -> throw DuplicateOption(name) - } + if (options.any { name in it.names }) throw DuplicateOption(name) } } @@ -222,7 +216,7 @@ sealed class Command private constructor( } private fun validateRenderer() { - if (_renderer != null) throw Exception() //TODO + if (_renderer != null) throw DuplicateRenderer() } private fun validate() { diff --git a/src/commonMain/kotlin/com/infendro/cli/command/argument/Argument.kt b/src/commonMain/kotlin/com/infendro/cli/command/argument/Argument.kt index 489d35c..3a63920 100644 --- a/src/commonMain/kotlin/com/infendro/cli/command/argument/Argument.kt +++ b/src/commonMain/kotlin/com/infendro/cli/command/argument/Argument.kt @@ -1,7 +1,9 @@ package com.infendro.cli.command.argument -import com.infendro.cli.exception.build.InvalidRange +import com.infendro.cli.error.build.InvalidArgument +import com.infendro.cli.error.build.InvalidRange import com.infendro.cli.parser.Parser +import com.infendro.cli.util.Regex.ARGUMENT sealed class Argument( val parser: Parser, @@ -10,7 +12,10 @@ sealed class Argument( val max: Int?, ) { init { - if (min !in 0..count || max == 0) throw InvalidRange() + when { + !name.matches(ARGUMENT) -> throw InvalidArgument(name) + min !in 0..count || max == 0 -> throw InvalidRange() + } } val required: Boolean diff --git a/src/commonMain/kotlin/com/infendro/cli/command/context/ContextParser.kt b/src/commonMain/kotlin/com/infendro/cli/command/context/ContextParser.kt index 07b6795..4caf619 100644 --- a/src/commonMain/kotlin/com/infendro/cli/command/context/ContextParser.kt +++ b/src/commonMain/kotlin/com/infendro/cli/command/context/ContextParser.kt @@ -1,7 +1,7 @@ package com.infendro.cli.command.context import com.infendro.cli.command.Command -import com.infendro.cli.exception.run.* +import com.infendro.cli.error.run.* import com.infendro.cli.parser.Parser internal class ContextParser( @@ -19,13 +19,13 @@ internal class ContextParser( data class Failure( val command: Command, - val error: RuntimeError, + val error: RunError, ) : Result() } private fun success(context: Context) = Result.Success(context) private fun help(command: Command) = Result.Help(command) - private fun failure(command: Command, exception: RuntimeError) = Result.Failure(command, exception) + private fun failure(command: Command, exception: RunError) = Result.Failure(command, exception) private var index = 0 private val current: String diff --git a/src/commonMain/kotlin/com/infendro/cli/command/help/DefaultHelpRenderer.kt b/src/commonMain/kotlin/com/infendro/cli/command/help/DefaultHelpRenderer.kt index 36bed08..76e4b5b 100644 --- a/src/commonMain/kotlin/com/infendro/cli/command/help/DefaultHelpRenderer.kt +++ b/src/commonMain/kotlin/com/infendro/cli/command/help/DefaultHelpRenderer.kt @@ -75,7 +75,11 @@ object DefaultHelpRenderer : HelpRenderer { private fun StringBuilder.commands(commands: List) { appendLine("Commands:") for (command in commands) { - appendLine(" * ${command.name}") + val name = when { + command is Command.Fallback<*> -> "<${command.name}>" + else -> command.name + } + appendLine(" * $name") } } diff --git a/src/commonMain/kotlin/com/infendro/cli/command/option/Option.kt b/src/commonMain/kotlin/com/infendro/cli/command/option/Option.kt index ac3711a..5191848 100644 --- a/src/commonMain/kotlin/com/infendro/cli/command/option/Option.kt +++ b/src/commonMain/kotlin/com/infendro/cli/command/option/Option.kt @@ -1,8 +1,10 @@ package com.infendro.cli.command.option -import com.infendro.cli.exception.build.InvalidRange -import com.infendro.cli.exception.build.MissingOptionName +import com.infendro.cli.error.build.InvalidOption +import com.infendro.cli.error.build.InvalidRange +import com.infendro.cli.error.build.MissingOptionName import com.infendro.cli.parser.Parser +import com.infendro.cli.util.Regex.OPTION sealed class Option( val parser: Parser, @@ -33,6 +35,7 @@ sealed class Option( init { when { names.isEmpty() -> throw MissingOptionName() + names.any { !it.matches(OPTION) } -> throw InvalidOption(name) min !in 0..count || max == 0 -> throw InvalidRange() } } diff --git a/src/commonMain/kotlin/com/infendro/cli/command/option/OptionFactory.kt b/src/commonMain/kotlin/com/infendro/cli/command/option/OptionFactory.kt index 82ceaab..95924bf 100644 --- a/src/commonMain/kotlin/com/infendro/cli/command/option/OptionFactory.kt +++ b/src/commonMain/kotlin/com/infendro/cli/command/option/OptionFactory.kt @@ -8,7 +8,7 @@ object OptionFactory { fun long(vararg names: String) = option(LongParser, *names) fun float(vararg names: String) = option(FloatParser, *names) fun double(vararg names: String) = option(DoubleParser, *names) - fun boolean(vararg names: String) = option(BooleanParser, true, *names) + fun boolean(vararg names: String) = option(BooleanParser, fallback = true, *names) inline fun > enum(vararg names: String) = option(enumParser(), *names) } diff --git a/src/commonMain/kotlin/com/infendro/cli/error/build/BuildException.kt b/src/commonMain/kotlin/com/infendro/cli/error/build/BuildException.kt new file mode 100644 index 0000000..ecefba9 --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/cli/error/build/BuildException.kt @@ -0,0 +1,3 @@ +package com.infendro.cli.error.build + +abstract class BuildException : Error() diff --git a/src/commonMain/kotlin/com/infendro/cli/error/build/DuplicateCommand.kt b/src/commonMain/kotlin/com/infendro/cli/error/build/DuplicateCommand.kt new file mode 100644 index 0000000..354ce41 --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/cli/error/build/DuplicateCommand.kt @@ -0,0 +1,8 @@ +package com.infendro.cli.error.build + +class DuplicateCommand( + val command: String, +) : BuildException() { + override val message: String + get() = """duplicate command "$command"""" +} diff --git a/src/commonMain/kotlin/com/infendro/cli/error/build/DuplicateExecute.kt b/src/commonMain/kotlin/com/infendro/cli/error/build/DuplicateExecute.kt new file mode 100644 index 0000000..f52c38d --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/cli/error/build/DuplicateExecute.kt @@ -0,0 +1,6 @@ +package com.infendro.cli.error.build + +class DuplicateExecute : BuildException() { + override val message: String + get() = """duplicate execute block""" +} diff --git a/src/commonMain/kotlin/com/infendro/cli/error/build/DuplicateOption.kt b/src/commonMain/kotlin/com/infendro/cli/error/build/DuplicateOption.kt new file mode 100644 index 0000000..adf89a2 --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/cli/error/build/DuplicateOption.kt @@ -0,0 +1,8 @@ +package com.infendro.cli.error.build + +class DuplicateOption( + val name: String, +) : BuildException() { + override val message: String + get() = """duplicate option "$name"""" +} diff --git a/src/commonMain/kotlin/com/infendro/cli/error/build/DuplicateRenderer.kt b/src/commonMain/kotlin/com/infendro/cli/error/build/DuplicateRenderer.kt new file mode 100644 index 0000000..347b803 --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/cli/error/build/DuplicateRenderer.kt @@ -0,0 +1,6 @@ +package com.infendro.cli.error.build + +class DuplicateRenderer : BuildException() { + override val message: String + get() = """duplicate renderer""" +} diff --git a/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidArgument.kt b/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidArgument.kt new file mode 100644 index 0000000..6d7ae74 --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidArgument.kt @@ -0,0 +1,8 @@ +package com.infendro.cli.error.build + +class InvalidArgument( + val name: String, +) : BuildException() { + override val message: String + get() = """invalid argument name "$name"""" +} diff --git a/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidArgumentOrder.kt b/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidArgumentOrder.kt new file mode 100644 index 0000000..f5b4b52 --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidArgumentOrder.kt @@ -0,0 +1,6 @@ +package com.infendro.cli.error.build + +class InvalidArgumentOrder : BuildException() { + override val message: String + get() = """invalid argument order""" +} diff --git a/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidCommand.kt b/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidCommand.kt new file mode 100644 index 0000000..a6d3a3a --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidCommand.kt @@ -0,0 +1,8 @@ +package com.infendro.cli.error.build + +class InvalidCommand( + val name: String, +) : BuildException() { + override val message: String + get() = """invalid command name "$name"""" +} diff --git a/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidCommandOrder.kt b/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidCommandOrder.kt new file mode 100644 index 0000000..eb65123 --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidCommandOrder.kt @@ -0,0 +1,6 @@ +package com.infendro.cli.error.build + +class InvalidCommandOrder : BuildException() { + override val message: String + get() = """invalid command order""" +} diff --git a/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidFallback.kt b/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidFallback.kt new file mode 100644 index 0000000..ac0c01a --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidFallback.kt @@ -0,0 +1,6 @@ +package com.infendro.cli.error.build + +class InvalidFallback : BuildException() { + override val message: String + get() = """invalid fallback""" +} diff --git a/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidOption.kt b/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidOption.kt new file mode 100644 index 0000000..896d5df --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidOption.kt @@ -0,0 +1,8 @@ +package com.infendro.cli.error.build + +class InvalidOption( + val name: String, +) : BuildException() { + override val message: String + get() = """invalid option name "$name"""" +} diff --git a/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidRange.kt b/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidRange.kt new file mode 100644 index 0000000..f95e8df --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/cli/error/build/InvalidRange.kt @@ -0,0 +1,6 @@ +package com.infendro.cli.error.build + +class InvalidRange : BuildException() { + override val message: String + get() = """invalid range""" +} diff --git a/src/commonMain/kotlin/com/infendro/cli/error/build/MissingOptionName.kt b/src/commonMain/kotlin/com/infendro/cli/error/build/MissingOptionName.kt new file mode 100644 index 0000000..a7997fd --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/cli/error/build/MissingOptionName.kt @@ -0,0 +1,6 @@ +package com.infendro.cli.error.build + +class MissingOptionName : BuildException() { + override val message: String + get() = """missing option name""" +} diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/run/InvalidArgumentCount.kt b/src/commonMain/kotlin/com/infendro/cli/error/run/InvalidArgumentCount.kt similarity index 90% rename from src/commonMain/kotlin/com/infendro/cli/exception/run/InvalidArgumentCount.kt rename to src/commonMain/kotlin/com/infendro/cli/error/run/InvalidArgumentCount.kt index 661b4c6..eee6b47 100644 --- a/src/commonMain/kotlin/com/infendro/cli/exception/run/InvalidArgumentCount.kt +++ b/src/commonMain/kotlin/com/infendro/cli/error/run/InvalidArgumentCount.kt @@ -1,11 +1,11 @@ -package com.infendro.cli.exception.run +package com.infendro.cli.error.run import com.infendro.cli.command.argument.Argument class InvalidArgumentCount( val argument: Argument<*>, val count: Int, -) : RuntimeError() { +) : RunError() { override val message: String get() { val expected = when { diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/run/InvalidOptionCount.kt b/src/commonMain/kotlin/com/infendro/cli/error/run/InvalidOptionCount.kt similarity index 89% rename from src/commonMain/kotlin/com/infendro/cli/exception/run/InvalidOptionCount.kt rename to src/commonMain/kotlin/com/infendro/cli/error/run/InvalidOptionCount.kt index 8be30ba..7d85c92 100644 --- a/src/commonMain/kotlin/com/infendro/cli/exception/run/InvalidOptionCount.kt +++ b/src/commonMain/kotlin/com/infendro/cli/error/run/InvalidOptionCount.kt @@ -1,11 +1,11 @@ -package com.infendro.cli.exception.run +package com.infendro.cli.error.run import com.infendro.cli.command.option.Option class InvalidOptionCount( val option: Option<*>, val count: Int, -) : RuntimeError() { +) : RunError() { override val message: String get() { val expected = when { diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/run/InvalidValue.kt b/src/commonMain/kotlin/com/infendro/cli/error/run/InvalidValue.kt similarity index 78% rename from src/commonMain/kotlin/com/infendro/cli/exception/run/InvalidValue.kt rename to src/commonMain/kotlin/com/infendro/cli/error/run/InvalidValue.kt index 40285a0..957308d 100644 --- a/src/commonMain/kotlin/com/infendro/cli/exception/run/InvalidValue.kt +++ b/src/commonMain/kotlin/com/infendro/cli/error/run/InvalidValue.kt @@ -1,11 +1,11 @@ -package com.infendro.cli.exception.run +package com.infendro.cli.error.run import kotlin.reflect.KClass class InvalidValue( val value: String, val type: KClass<*>, -) : RuntimeError() { +) : RunError() { override val message: String get() = """"$value" cannot be converted to ${type.simpleName ?: "Unknown"}""" } diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/run/MalformedOption.kt b/src/commonMain/kotlin/com/infendro/cli/error/run/MalformedOption.kt similarity index 68% rename from src/commonMain/kotlin/com/infendro/cli/exception/run/MalformedOption.kt rename to src/commonMain/kotlin/com/infendro/cli/error/run/MalformedOption.kt index b107348..bf3f09e 100644 --- a/src/commonMain/kotlin/com/infendro/cli/exception/run/MalformedOption.kt +++ b/src/commonMain/kotlin/com/infendro/cli/error/run/MalformedOption.kt @@ -1,8 +1,8 @@ -package com.infendro.cli.exception.run +package com.infendro.cli.error.run class MalformedOption( val option: String, -) : RuntimeError() { +) : RunError() { override val message: String get() = """malformed option "$option"""" } diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/run/MissingOptionValue.kt b/src/commonMain/kotlin/com/infendro/cli/error/run/MissingOptionValue.kt similarity index 77% rename from src/commonMain/kotlin/com/infendro/cli/exception/run/MissingOptionValue.kt rename to src/commonMain/kotlin/com/infendro/cli/error/run/MissingOptionValue.kt index e7f6bb9..3e66f4b 100644 --- a/src/commonMain/kotlin/com/infendro/cli/exception/run/MissingOptionValue.kt +++ b/src/commonMain/kotlin/com/infendro/cli/error/run/MissingOptionValue.kt @@ -1,10 +1,10 @@ -package com.infendro.cli.exception.run +package com.infendro.cli.error.run import com.infendro.cli.command.option.Option class MissingOptionValue( val option: Option<*>, -) : RuntimeError() { +) : RunError() { override val message: String get() = """no value provided for option "${option.name}"""" } diff --git a/src/commonMain/kotlin/com/infendro/cli/error/run/RunError.kt b/src/commonMain/kotlin/com/infendro/cli/error/run/RunError.kt new file mode 100644 index 0000000..b273109 --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/cli/error/run/RunError.kt @@ -0,0 +1,5 @@ +package com.infendro.cli.error.run + +abstract class RunError { + abstract val message: String +} diff --git a/src/commonMain/kotlin/com/infendro/cli/error/run/UnexpectedArgument.kt b/src/commonMain/kotlin/com/infendro/cli/error/run/UnexpectedArgument.kt new file mode 100644 index 0000000..ab04ef7 --- /dev/null +++ b/src/commonMain/kotlin/com/infendro/cli/error/run/UnexpectedArgument.kt @@ -0,0 +1,6 @@ +package com.infendro.cli.error.run + +class UnexpectedArgument : RunError() { + override val message: String + get() = """unexpected argument""" +} diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/run/UnknownCommand.kt b/src/commonMain/kotlin/com/infendro/cli/error/run/UnknownCommand.kt similarity index 68% rename from src/commonMain/kotlin/com/infendro/cli/exception/run/UnknownCommand.kt rename to src/commonMain/kotlin/com/infendro/cli/error/run/UnknownCommand.kt index 2474927..69903c4 100644 --- a/src/commonMain/kotlin/com/infendro/cli/exception/run/UnknownCommand.kt +++ b/src/commonMain/kotlin/com/infendro/cli/error/run/UnknownCommand.kt @@ -1,8 +1,8 @@ -package com.infendro.cli.exception.run +package com.infendro.cli.error.run class UnknownCommand( val command: String, -) : RuntimeError() { +) : RunError() { override val message: String get() = """unknown command "$command"""" } diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/run/UnknownOption.kt b/src/commonMain/kotlin/com/infendro/cli/error/run/UnknownOption.kt similarity index 68% rename from src/commonMain/kotlin/com/infendro/cli/exception/run/UnknownOption.kt rename to src/commonMain/kotlin/com/infendro/cli/error/run/UnknownOption.kt index ce27c2b..1ccee98 100644 --- a/src/commonMain/kotlin/com/infendro/cli/exception/run/UnknownOption.kt +++ b/src/commonMain/kotlin/com/infendro/cli/error/run/UnknownOption.kt @@ -1,8 +1,8 @@ -package com.infendro.cli.exception.run +package com.infendro.cli.error.run class UnknownOption( val option: String, -) : RuntimeError() { +) : RunError() { override val message: String get() = """unknown option "$option"""" } diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/build/CliException.kt b/src/commonMain/kotlin/com/infendro/cli/exception/build/CliException.kt deleted file mode 100644 index 1f666d7..0000000 --- a/src/commonMain/kotlin/com/infendro/cli/exception/build/CliException.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.infendro.cli.exception.build - -abstract class CliException : Exception() diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/build/DuplicateCommand.kt b/src/commonMain/kotlin/com/infendro/cli/exception/build/DuplicateCommand.kt deleted file mode 100644 index fbddcd7..0000000 --- a/src/commonMain/kotlin/com/infendro/cli/exception/build/DuplicateCommand.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.infendro.cli.exception.build - -class DuplicateCommand( - val command: String, -) : CliException() diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/build/DuplicateExecute.kt b/src/commonMain/kotlin/com/infendro/cli/exception/build/DuplicateExecute.kt deleted file mode 100644 index 818a437..0000000 --- a/src/commonMain/kotlin/com/infendro/cli/exception/build/DuplicateExecute.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.infendro.cli.exception.build - -class DuplicateExecute : CliException() diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/build/DuplicateOption.kt b/src/commonMain/kotlin/com/infendro/cli/exception/build/DuplicateOption.kt deleted file mode 100644 index 687e9ea..0000000 --- a/src/commonMain/kotlin/com/infendro/cli/exception/build/DuplicateOption.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.infendro.cli.exception.build - -class DuplicateOption( - val name: String, -) : CliException() diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidArgument.kt b/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidArgument.kt deleted file mode 100644 index ad901b4..0000000 --- a/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidArgument.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.infendro.cli.exception.build - -class InvalidArgument( - val name: String, -) : CliException() diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidArgumentOrder.kt b/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidArgumentOrder.kt deleted file mode 100644 index 6e2a498..0000000 --- a/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidArgumentOrder.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.infendro.cli.exception.build - -class InvalidArgumentOrder : CliException() diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidCommand.kt b/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidCommand.kt deleted file mode 100644 index f49aacd..0000000 --- a/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidCommand.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.infendro.cli.exception.build - -class InvalidCommand( - val name: String, -) : CliException() diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidCommandOrder.kt b/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidCommandOrder.kt deleted file mode 100644 index 4c35cf4..0000000 --- a/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidCommandOrder.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.infendro.cli.exception.build - -class InvalidCommandOrder : CliException() diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidFallback.kt b/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidFallback.kt deleted file mode 100644 index cc50110..0000000 --- a/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidFallback.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.infendro.cli.exception.build - -class InvalidFallback : CliException() diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidOption.kt b/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidOption.kt deleted file mode 100644 index f336e4d..0000000 --- a/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidOption.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.infendro.cli.exception.build - -class InvalidOption( - val name: String, -) : CliException() diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidRange.kt b/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidRange.kt deleted file mode 100644 index 23eec23..0000000 --- a/src/commonMain/kotlin/com/infendro/cli/exception/build/InvalidRange.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.infendro.cli.exception.build - -class InvalidRange : CliException() diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/build/MissingOptionName.kt b/src/commonMain/kotlin/com/infendro/cli/exception/build/MissingOptionName.kt deleted file mode 100644 index 8725a87..0000000 --- a/src/commonMain/kotlin/com/infendro/cli/exception/build/MissingOptionName.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.infendro.cli.exception.build - -class MissingOptionName : CliException() diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/run/RuntimeError.kt b/src/commonMain/kotlin/com/infendro/cli/exception/run/RuntimeError.kt deleted file mode 100644 index d53e4c2..0000000 --- a/src/commonMain/kotlin/com/infendro/cli/exception/run/RuntimeError.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.infendro.cli.exception.run - -abstract class RuntimeError { - abstract val message: String -} diff --git a/src/commonMain/kotlin/com/infendro/cli/exception/run/UnexpectedArgument.kt b/src/commonMain/kotlin/com/infendro/cli/exception/run/UnexpectedArgument.kt deleted file mode 100644 index 8570525..0000000 --- a/src/commonMain/kotlin/com/infendro/cli/exception/run/UnexpectedArgument.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.infendro.cli.exception.run - -class UnexpectedArgument : RuntimeError() { - override val message: String - get() = """unexpected argument""" -} diff --git a/src/commonMain/kotlin/com/infendro/cli/parser/Parser.kt b/src/commonMain/kotlin/com/infendro/cli/parser/Parser.kt index d2bfe1b..4541b0d 100644 --- a/src/commonMain/kotlin/com/infendro/cli/parser/Parser.kt +++ b/src/commonMain/kotlin/com/infendro/cli/parser/Parser.kt @@ -1,7 +1,7 @@ package com.infendro.cli.parser -import com.infendro.cli.exception.run.InvalidValue -import com.infendro.cli.exception.run.RuntimeError +import com.infendro.cli.error.run.InvalidValue +import com.infendro.cli.error.run.RunError import kotlin.reflect.KClass abstract class Parser( @@ -13,7 +13,7 @@ abstract class Parser( ) : Result() data class Failure( - val error: RuntimeError, + val error: RunError, ) : Result() }