sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 37 | private Vector arguments = new Vector(); |
sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 64 | return parse(line, null); |
sandbox | Sun Mar 12 21:07:59 JST 2006 | a3538e | 79 | if (line == null) { |
sandbox | Sun Mar 12 21:07:59 JST 2006 | a3538e | 81 | } else if (line.trim().length() == 0) { |
sandbox | Sun Mar 12 21:07:59 JST 2006 | a3538e | 84 | String[] tmp = translateCommandline(line); |
sandbox | Sun Mar 12 21:07:59 JST 2006 | a3538e | 86 | CommandLine cl = new CommandLine(tmp[0]); |
sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 87 | cl.setSubstitutionMap(substitutionMap); |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 88 | for (int i = 1; i < tmp.length; i++) { |
sandbox | Sun Mar 12 21:07:59 JST 2006 | a3538e | 89 | cl.addArgument(tmp[i]); |
sandbox | Sun Mar 12 21:07:59 JST 2006 | a3538e | 92 | return cl; |
sandbox | Sun Mar 12 21:07:59 JST 2006 | a3538e | 101 | public CommandLine(String executable) { |
sandbox | Sat Apr 12 01:37:11 JST 2008 | 7aa110 | 102 | this.isFile=false; |
sandbox | Sun Mar 12 21:07:59 JST 2006 | a3538e | 103 | setExecutable(executable); |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 104 | } |
sandbox | Wed Dec 05 07:15:42 JST 2007 | 0b6989 | 198 | return this.addArgument(argument, true); |
sandbox | Wed Dec 05 07:15:42 JST 2007 | 0b6989 | 209 | if (argument == null) { |
sandbox | Wed Dec 05 07:15:42 JST 2007 | 0b6989 | 213 | if(handleQuoting) { |
EXEC_1_0_0_RC1 | Sat Jul 19 05:23:35 JST 2008 | 43d166 | 214 | arguments.add(StringUtils.quoteArgument(argument)); |
sandbox | Wed Dec 05 07:15:42 JST 2007 | 0b6989 | 220 | return this; |
sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 229 | String[] result = new String[arguments.size()]; |
sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 230 | result = (String[]) arguments.toArray(result); |
sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 231 | return this.expandArguments(result); |
sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 238 | return substitutionMap; |
sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 247 | this.substitutionMap = substitutionMap; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 248 | } |
sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 301 | StringBuffer stringBuffer = StringUtils.stringSubstitution(argument, this.getSubstitutionMap(), true); |
sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 302 | return stringBuffer.toString(); |
sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 312 | String[] result = new String[arguments.length]; |
sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 313 | for(int i=0; i |
sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 314 | result[i] = this.expandArgument(arguments[i]); |
sandbox | Sat Dec 08 01:38:27 JST 2007 | 29abee | 316 | return result; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 329 | if (toProcess == null || toProcess.length() == 0) { |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 336 | final int normal = 0; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 337 | final int inQuote = 1; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 338 | final int inDoubleQuote = 2; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 339 | int state = normal; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 340 | StringTokenizer tok = new StringTokenizer(toProcess, "\"\' ", true); |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 341 | Vector v = new Vector(); |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 342 | StringBuffer current = new StringBuffer(); |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 343 | boolean lastTokenHasBeenQuoted = false; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 345 | while (tok.hasMoreTokens()) { |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 346 | String nextTok = tok.nextToken(); |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 347 | switch (state) { |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 349 | if ("\'".equals(nextTok)) { |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 350 | lastTokenHasBeenQuoted = true; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 351 | state = normal; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 353 | current.append(nextTok); |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 355 | break; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 357 | if ("\"".equals(nextTok)) { |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 358 | lastTokenHasBeenQuoted = true; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 359 | state = normal; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 361 | current.append(nextTok); |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 363 | break; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 365 | if ("\'".equals(nextTok)) { |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 366 | state = inQuote; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 367 | } else if ("\"".equals(nextTok)) { |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 368 | state = inDoubleQuote; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 369 | } else if (" ".equals(nextTok)) { |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 370 | if (lastTokenHasBeenQuoted || current.length() != 0) { |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 371 | v.addElement(current.toString()); |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 372 | current = new StringBuffer(); |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 375 | current.append(nextTok); |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 377 | lastTokenHasBeenQuoted = false; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 380 | } |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 382 | if (lastTokenHasBeenQuoted || current.length() != 0) { |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 383 | v.addElement(current.toString()); |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 386 | if (state == inQuote || state == inDoubleQuote) { |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 391 | String[] args = new String[v.size()]; |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 392 | v.copyInto(args); |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 393 | return args; |
sandbox | Wed Dec 05 07:15:42 JST 2007 | 0b6989 | 403 | if (executable == null) { |
sandbox | Wed Dec 05 07:15:42 JST 2007 | 0b6989 | 405 | } else if(executable.trim().length() == 0) { |
EXEC_1_0_0_RC1 | Sat Jul 19 05:40:44 JST 2008 | b95e06 | 408 | this.executable = StringUtils.fixFileSeparatorChar(executable); |
sandbox | Sun Mar 12 04:18:50 JST 2006 | 18cb09 | 410 | } |