public void setInternal(final boolean internal) {
this.internal = internal;
}
public String[] getCmdLine() {
final RuntimeInfo r = getRuntimeInfo();
final List<String> result = new ArrayList<String>();
if (hasDetachedConsole() && !isInternal()) {
if (SystemConfiguration.getInstance().isOnWindows()) {
result.add("cmd.exe");
result.add("/c");
result.add("start");
} else {
final String command = System.getenv().get("TERM");
result.add(command);
result.add("-e");
}
}
String erl = r.getOtpHome() + "/bin/erl";
if (erl.indexOf(' ') >= 0) {
erl = "\"" + erl + "\"";
}
result.add(erl);
for (final String path : r.getCodePath()) {
if (!Strings.isNullOrEmpty(path)) {
result.add("-pa");
result.add(path);
}
}
if (!useStartShell()) {
result.add("-noshell");
}
if (!getNodeName().equals("")) {
final String nameTag = hasLongName() ? "-name" : "-sname";
String nameOption = getNodeName();
if (!nameOption.contains("@")) {
nameOption += "@" + HostnameUtils.getErlangHostName(hasLongName());
}
result.add(nameTag);
result.add(nameOption);
final String cky = getCookie();
if (!Strings.isNullOrEmpty(cky)) {
result.add("-setcookie");
result.add(cky);
}
}
final String gotArgs = r.getArgs();
if (!Strings.isNullOrEmpty(gotArgs)) {
result.addAll(splitQuoted(gotArgs));
}
return result.toArray(new String[result.size()]);
}