1.4.0 release #9
@@ -20,7 +20,7 @@ sealed class Command private constructor(
|
|||||||
internal val renderer: HelpRenderer,
|
internal val renderer: HelpRenderer,
|
||||||
) {
|
) {
|
||||||
init {
|
init {
|
||||||
if (!name.matches(Regex.COMMAND)) throw InvalidCommand(name)
|
if (!name.matches(Regex.COMMAND)) throw InvalidCommandName(name)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun run(args: Array<String>) {
|
fun run(args: Array<String>) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.infendro.cli.command.argument
|
package com.infendro.cli.command.argument
|
||||||
|
|
||||||
import com.infendro.cli.error.build.InvalidArgument
|
import com.infendro.cli.error.build.InvalidArgumentName
|
||||||
import com.infendro.cli.error.build.InvalidRange
|
import com.infendro.cli.error.build.InvalidRange
|
||||||
import com.infendro.cli.parser.Parser
|
import com.infendro.cli.parser.Parser
|
||||||
import com.infendro.cli.util.Regex.ARGUMENT
|
import com.infendro.cli.util.Regex.ARGUMENT
|
||||||
@@ -13,7 +13,7 @@ sealed class Argument<T : Any>(
|
|||||||
) {
|
) {
|
||||||
init {
|
init {
|
||||||
when {
|
when {
|
||||||
!name.matches(ARGUMENT) -> throw InvalidArgument(name)
|
!name.matches(ARGUMENT) -> throw InvalidArgumentName(name)
|
||||||
min !in 0..count || max == 0 -> throw InvalidRange()
|
min !in 0..count || max == 0 -> throw InvalidRange()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.infendro.cli.command.option
|
package com.infendro.cli.command.option
|
||||||
|
|
||||||
import com.infendro.cli.error.build.InvalidOption
|
import com.infendro.cli.error.build.InvalidOptionName
|
||||||
import com.infendro.cli.error.build.InvalidRange
|
import com.infendro.cli.error.build.InvalidRange
|
||||||
import com.infendro.cli.error.build.MissingOptionName
|
import com.infendro.cli.error.build.MissingOptionName
|
||||||
import com.infendro.cli.parser.Parser
|
import com.infendro.cli.parser.Parser
|
||||||
@@ -35,7 +35,7 @@ sealed class Option<T : Any>(
|
|||||||
init {
|
init {
|
||||||
when {
|
when {
|
||||||
names.isEmpty() -> throw MissingOptionName()
|
names.isEmpty() -> throw MissingOptionName()
|
||||||
names.any { !it.matches(OPTION) } -> throw InvalidOption(name)
|
names.any { !it.matches(OPTION) } -> throw InvalidOptionName(name)
|
||||||
min !in 0..count || max == 0 -> throw InvalidRange()
|
min !in 0..count || max == 0 -> throw InvalidRange()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
package com.infendro.cli.error.build
|
package com.infendro.cli.error.build
|
||||||
|
|
||||||
abstract class BuildException : Error()
|
abstract class BuildException : Exception()
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package com.infendro.cli.error.build
|
package com.infendro.cli.error.build
|
||||||
|
|
||||||
|
import com.infendro.cli.command.argument.Argument
|
||||||
|
|
||||||
class DuplicateArgument(
|
class DuplicateArgument(
|
||||||
val name: String,
|
val argument: Argument<*>,
|
||||||
) : BuildException() {
|
) : BuildException() {
|
||||||
override val message: String
|
override val message: String
|
||||||
get() = """duplicate argument "$name""""
|
get() = """duplicate argument "${argument.name}""""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package com.infendro.cli.error.build
|
package com.infendro.cli.error.build
|
||||||
|
|
||||||
|
import com.infendro.cli.command.Command
|
||||||
|
|
||||||
class DuplicateCommand(
|
class DuplicateCommand(
|
||||||
val command: String,
|
val command: Command,
|
||||||
) : BuildException() {
|
) : BuildException() {
|
||||||
override val message: String
|
override val message: String
|
||||||
get() = """duplicate command "$command""""
|
get() = """duplicate command "${command.name}""""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package com.infendro.cli.error.build
|
package com.infendro.cli.error.build
|
||||||
|
|
||||||
|
import com.infendro.cli.command.option.Option
|
||||||
|
|
||||||
class DuplicateOption(
|
class DuplicateOption(
|
||||||
val name: String,
|
val option: Option<*>,
|
||||||
) : BuildException() {
|
) : BuildException() {
|
||||||
override val message: String
|
override val message: String
|
||||||
get() = """duplicate option "$name""""
|
get() = """duplicate option "${option.name}""""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.infendro.cli.error.build
|
package com.infendro.cli.error.build
|
||||||
|
|
||||||
class InvalidArgument(
|
class InvalidArgumentName(
|
||||||
val name: String,
|
val name: String,
|
||||||
) : BuildException() {
|
) : BuildException() {
|
||||||
override val message: String
|
override val message: String
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.infendro.cli.error.build
|
package com.infendro.cli.error.build
|
||||||
|
|
||||||
class InvalidCommand(
|
class InvalidCommandName(
|
||||||
val name: String,
|
val name: String,
|
||||||
) : BuildException() {
|
) : BuildException() {
|
||||||
override val message: String
|
override val message: String
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.infendro.cli.error.build
|
package com.infendro.cli.error.build
|
||||||
|
|
||||||
class InvalidOption(
|
class InvalidOptionName(
|
||||||
val name: String,
|
val name: String,
|
||||||
) : BuildException() {
|
) : BuildException() {
|
||||||
override val message: String
|
override val message: String
|
||||||
Reference in New Issue
Block a user