[rhq] Branch 'release/jon3.1.x' - modules/enterprise
John Sanda
jsanda at fedoraproject.org
Thu Aug 16 17:20:51 UTC 2012
modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/ClientMain.java | 28 ++++++++++
1 file changed, 28 insertions(+)
New commits:
commit e5d912de85a77be290a03244cd6e8121f052bd0a
Author: John Sanda <jsanda at redhat.com>
Date: Thu Aug 16 13:18:09 2012 -0400
[BZ 826604] fix parsing of quoted named args
This commit addresses the parsing problems of using quoted strings with
named arguments.
diff --git a/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/ClientMain.java b/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/ClientMain.java
index 99595ab..eb6008c 100644
--- a/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/ClientMain.java
+++ b/modules/enterprise/remoting/cli/src/main/java/org/rhq/enterprise/client/ClientMain.java
@@ -411,6 +411,7 @@ public class ClientMain {
boolean keep_going = true;
boolean isScriptFileCommand = false;
+ boolean isNamedArgs = false;
// we don't want to parse numbers and we want ' to be a normal word
// character
@@ -451,12 +452,39 @@ public class ClientMain {
isScriptFileCommand = true;
}
args.add(strtok.sval);
+ if (strtok.sval.equals("--args-style=named")) {
+ isNamedArgs = true;
+ }
} else if (nextToken == '\"' || nextToken == '\'') {
args.add(strtok.sval);
} else if ((nextToken == java.io.StreamTokenizer.TT_EOF) || (nextToken == java.io.StreamTokenizer.TT_EOL)) {
keep_going = false;
}
}
+
+ if (isNamedArgs) {
+ List<String> newArgs = new ArrayList<String>();
+ int namedArgsIndex = args.indexOf("--args-style=named");
+
+ for (int i = 0; i <= namedArgsIndex; ++i) {
+ newArgs.add(args.get(i));
+ }
+
+ String namedArg = null;
+ for (int i = namedArgsIndex + 1; i < args.size(); ++i) {
+ if (namedArg == null && args.get(i).endsWith("=")) {
+ namedArg = args.get(i);
+ } else if (namedArg != null) {
+ newArgs.add(args.get(i - 1) + args.get(i));
+ namedArg = null;
+ } else {
+ newArgs.add(args.get(i));
+ }
+ }
+
+ return newArgs.toArray(new String[newArgs.size()]);
+ }
+
return args.toArray(new String[args.size()]);
}
More information about the rhq-commits
mailing list