package net.mms_projects.copy_it.linux;
import java.util.HashMap;
import java.util.Map;
public class XDG {
public static String getCurrentDesktop() {
return getString("XDG_CURRENT_DESKTOP");
}
public static String getDataHome() {
return getString("XDG_DATA_HOME");
}
public static String getConfigHome() {
return getString("XDG_CONFIG_HOME");
}
public static String getCacheHome() {
return getString("XDG_CACHE_HOME");
}
private static String getString(String variable) {
String defaultValue = getDefault(variable);
String value = (System.getenv(variable) != null) ? System
.getenv(variable) : defaultValue;
return value;
}
private static String getDefault(String variable) {
Map<String, String> defaults = new HashMap<String, String>();
defaults.put("XDG_DATA_HOME", parsePath("$HOME/.local/share"));
defaults.put("XDG_CONFIG_HOME", parsePath("$HOME/.config"));
defaults.put("XDG_CACHE_HOME", parsePath("$HOME/.cache"));
return defaults.get(variable);
}
private static String parsePath(String path) {
String home = System.getenv("HOME");
path = path.replace("$HOME", home);
return path;
}
}