/**
* This file is distributed under the GPL
* $Id: OperatingSystem.java 1869 2009-09-02 07:02:35Z scotta $
*/
//package net.bnubot.util;
import java.util.Properties;
/**
* @author scotta
*/
public enum OperatingSystem {
WINDOWS,
OSX,
LINUX,
UNKNOWN;
private static OperatingSystem initOS() {
String osName = System.getProperty("os.name");
if(osName.equals("Mac OS X"))
return OSX;
if(osName.startsWith("Windows "))
return WINDOWS;
if(osName.startsWith("Linux"))
return LINUX;
return UNKNOWN;
}
public static final OperatingSystem userOS = initOS();
/**
* @return user-displayable operating system version
*/
public static String osVersion() {
Properties p = System.getProperties();
String osName = p.getProperty("os.name");
String osVersion = p.getProperty("os.version");
if((osVersion != null) && (osVersion.length() != 0))
osName += " " + osVersion;
switch(userOS) {
case OSX:
if(osVersion.startsWith("10.0"))
osName += " Cheetah";
else if(osVersion.startsWith("10.1"))
osName += " Puma";
else if(osVersion.startsWith("10.2"))
osName += " Jaguar";
else if(osVersion.startsWith("10.3"))
osName += " Panther";
else if(osVersion.startsWith("10.4"))
osName += " Tiger";
else if(osVersion.startsWith("10.5"))
osName += " Leopard";
else if(osVersion.startsWith("10.6"))
osName += " Snow Leopard";
break;
case WINDOWS:
osName += " " + p.getProperty("sun.os.patch.level");
break;
}
osName += " (" + p.getProperty("os.arch") + ")";
return osName;
}
public static String javaVersion() {
return "Java " + System.getProperties().getProperty("java.version");
}
}