/*
* Copyright 2016 Nokia Solutions and Networks
* Licensed under the Apache License, Version 2.0,
* see license.txt file for details.
*/
package org.rf.ide.core.executor;
import java.util.ArrayList;
import java.util.List;
import com.google.common.base.Splitter;
/**
* @author Michal Anglart
*/
public class RedSystemProperties {
public static final String RED_CONNECT_TO_SERVER_AT = "red.connectToServerAt";
public static final String RED_USE_DIRECT_INTERPRETER = "red.useDirectInterpreter";
public static final String RED_SHOW_SESSION_CONSOLE = "red.showSessionConsole";
public static final String RED_USE_OLD_REPARSED_LINK_MODE = "red.useOldReparsedLinkMode";
public static final String RED_USE_DIRECT_SCANNER = "red.useDirectScanner";
public static boolean shouldConnectToRunningServer() {
return System.getProperty(RED_CONNECT_TO_SERVER_AT) != null;
}
public static String getSessionServerAddress() {
return System.getProperty(RED_CONNECT_TO_SERVER_AT);
}
public static boolean shouldUseDirectExecutor() {
return Boolean.valueOf(System.getProperty(RED_USE_DIRECT_INTERPRETER));
}
public static boolean shouldShowSessionConsole() {
return Boolean.valueOf(System.getProperty(RED_SHOW_SESSION_CONSOLE));
}
public static boolean shouldUseOldReparsedLinkMode() {
return Boolean.valueOf(System.getProperty(RED_USE_OLD_REPARSED_LINK_MODE));
}
public static boolean shouldUseDirectScanner() {
return Boolean.valueOf(System.getProperty(RED_USE_DIRECT_SCANNER));
}
public static boolean isWindowsPlatform() {
return System.getProperty("os.name").toLowerCase().contains("win");
}
public static String getPathsSeparator() {
return isWindowsPlatform() ? ";" : ":";
}
public static List<String> getPythonPaths() {
return getPaths("PYTHONPATH");
}
public static List<String> getClassPaths() {
return getPaths("CLASSPATH");
}
private static List<String> getPaths(final String name) {
final String paths = System.getenv(name);
if (paths == null || paths.isEmpty()) {
return new ArrayList<>();
}
return Splitter.on(getPathsSeparator()).splitToList(paths);
}
}