Support deprecatedName for advanced CLI arguments
This commit is contained in:
committed by
Denis Zharkov
parent
92215b41b9
commit
d32e101802
+24
-8
@@ -71,20 +71,33 @@ fun <A : CommonToolArguments> parseCommandLineArguments(args: List<String>, resu
|
|||||||
var freeArgsStarted = false
|
var freeArgsStarted = false
|
||||||
|
|
||||||
fun ArgumentField.matches(arg: String): Boolean {
|
fun ArgumentField.matches(arg: String): Boolean {
|
||||||
if (argument.deprecatedName.takeUnless(String::isEmpty) == arg) {
|
if (argument.shortName.takeUnless(String::isEmpty) == arg) {
|
||||||
errors.deprecatedArguments[argument.deprecatedName] = argument.value
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argument.value == arg) {
|
val deprecatedName = argument.deprecatedName.takeUnless(String::isEmpty)
|
||||||
if (argument.isAdvanced && property.returnType.classifier != Boolean::class) {
|
if (deprecatedName == arg) {
|
||||||
errors.extraArgumentsPassedInObsoleteForm.add(arg)
|
errors.deprecatedArguments[deprecatedName] = argument.value
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
if (argument.isAdvanced) {
|
||||||
|
if (argument.value == arg) {
|
||||||
|
if (property.returnType.classifier != Boolean::class) {
|
||||||
|
errors.extraArgumentsPassedInObsoleteForm.add(arg)
|
||||||
|
}
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
return true
|
|
||||||
|
if (deprecatedName != null && arg.startsWith(deprecatedName + "=")) {
|
||||||
|
errors.deprecatedArguments[deprecatedName] = argument.value
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
return arg.startsWith(argument.value + "=")
|
||||||
}
|
}
|
||||||
|
|
||||||
return argument.shortName.takeUnless(String::isEmpty) == arg ||
|
return argument.value == arg
|
||||||
(argument.isAdvanced && arg.startsWith(argument.value + "="))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var i = 0
|
var i = 0
|
||||||
@@ -116,6 +129,9 @@ fun <A : CommonToolArguments> parseCommandLineArguments(args: List<String>, resu
|
|||||||
argument.isAdvanced && arg.startsWith(argument.value + "=") -> {
|
argument.isAdvanced && arg.startsWith(argument.value + "=") -> {
|
||||||
arg.substring(argument.value.length + 1)
|
arg.substring(argument.value.length + 1)
|
||||||
}
|
}
|
||||||
|
argument.isAdvanced && arg.startsWith(argument.deprecatedName + "=") -> {
|
||||||
|
arg.substring(argument.deprecatedName.length + 1)
|
||||||
|
}
|
||||||
i == args.size -> {
|
i == args.size -> {
|
||||||
errors.argumentWithoutValue = arg
|
errors.argumentWithoutValue = arg
|
||||||
break@loop
|
break@loop
|
||||||
|
|||||||
Reference in New Issue
Block a user