package org.arquillian.cube.docker.impl.util; import static org.arquillian.cube.docker.impl.util.OperatingSystemFamily.DEC_OS; import static org.arquillian.cube.docker.impl.util.OperatingSystemFamily.LINUX; import static org.arquillian.cube.docker.impl.util.OperatingSystemFamily.MAC; import static org.arquillian.cube.docker.impl.util.OperatingSystemFamily.UNIX; import static org.arquillian.cube.docker.impl.util.OperatingSystemFamily.UNKNOWN; import static org.arquillian.cube.docker.impl.util.OperatingSystemFamily.WINDOWS; public enum OperatingSystem { LINUX_OS("Linux", LINUX), MAC_OSX("Mac OS X", MAC), MAC_OS("Mac OS", MAC), WINDOWS_95("Windows 95", WINDOWS), WINDOWS_98("Windows 98", WINDOWS), WINDOWS_ME("Windows Me", WINDOWS), WINDOWS_NT("Windows NT", WINDOWS), WINDOWS_2000("Windows 2000", WINDOWS), WINDOWS_XP("Windows XP", WINDOWS), WINDOWS_7("Windows 7", WINDOWS), WINDOWS_8("Windows 8", WINDOWS), WINDOWS_2003("Windows 2003", WINDOWS), WINDOWS_2008("Windows 2008", WINDOWS), SUN_OS("Sun OS ", UNIX), MPE_IX("MPE/iX", UNIX), HP_UX("HP-UX", UNIX), AIX("AIX", UNIX), OS_390("OS/390", UNIX), FREEBSD("FreeBSD", UNIX), IRIX("Irix", UNIX), DIGITAL_UNIX("Digital Unix", UNIX), NETWARE_4_11("NetWare 4.11", UNIX), OSF1("OSF1", UNIX), OPENVMS("OpenVMS", DEC_OS), UNKNOWN_OS("Unknown", UNKNOWN); final private String label; final private OperatingSystemFamily family; private OperatingSystem(String label, OperatingSystemFamily family) { this.label = label; this.family = family; } static public OperatingSystem resolve(String osName) { for (OperatingSystem os : OperatingSystem.values()) { if (os.label.equalsIgnoreCase(osName)) return os; } return OperatingSystem.UNKNOWN_OS; } public String getLabel() { return label; } public OperatingSystemFamily getFamily() { return family; } }