client.getPrintWriter().println(e.getMessage());
if (log.isDebugEnabled()) {
log.debug("Unable to locate script file: " + e.getMessage());
}
} else {
throw new CLIScriptException(e);
}
} catch (CommandLineParseException e) {
if (client.isInteractiveMode()) {
client.getPrintWriter().println("parse error: " + e.getMessage());
if (log.isDebugEnabled()) {
log.debug("A parse error occurred.", e);
}
} else {
throw new CLIScriptException(e);
}
}
return true;
}
isMultilineScript = "\\".equals(args[args.length - 1]);
inMultilineScript = inMultilineScript || isMultilineScript;
if (!isMultilineScript && !inMultilineScript) {
script = new StringBuilder();
}
if (isMultilineScript) {
args = Arrays.copyOfRange(args, 0, args.length - 1);
}
for (int i = ("exec".equals(args[0]) ? 1 : 0); i < args.length; i++) {
script.append(args[i]);
script.append(" ");
}
if (isMultilineScript) {
return true;
}
try {
Object result = client.getScriptEngine().eval(script.toString());
inMultilineScript = false;
script = new StringBuilder();
if (result != null) {
// client.getPrintWriter().print("result: ");
TabularWriter writer = new TabularWriter(client.getPrintWriter());
if (client.isInteractiveMode()) {
writer.setWidth(client.getConsoleWidth());
}
writer.print(result);
}
} catch (ScriptException e) {
if (client.isInteractiveMode()) {
String message = client.getUsefulErrorMessage(e);
client.getPrintWriter().println(message);
client.getPrintWriter().println(script);
for (int i = 0; i < e.getColumnNumber(); i++) {
client.getPrintWriter().print(" ");
}
client.getPrintWriter().println("^");
script = new StringBuilder();
inMultilineScript = false;
} else {
throw new CLIScriptException(e);
}
}
client.getPrintWriter().println();
return true;
}