package org.arquillian.cube.docker.impl.model; import org.arquillian.cube.docker.impl.util.OperatingSystemFamily; import org.arquillian.cube.docker.impl.util.OperatingSystemResolver; public enum DockerMachineDistro { LINUX(new OperatingSystemFamily[] {OperatingSystemFamily.LINUX}, "docker-machine-Linux-x86_64"), OSX(new OperatingSystemFamily[] {OperatingSystemFamily.MAC}, "docker-machine-Darwin-x86_64"), WIN_64(new OperatingSystemFamily[] {OperatingSystemFamily.WINDOWS}, "docker-machine-Windows-x86_64.exe"); private OperatingSystemFamily[] osFamily; private String distro; DockerMachineDistro(OperatingSystemFamily[] osFamily, String distro) { this.osFamily = osFamily; this.distro = distro; } public static String resolveDistro() { OperatingSystemFamily currentOSFamily = new OperatingSystemResolver().currentOperatingSystem().getFamily(); for (DockerMachineDistro distro : values()) { for (OperatingSystemFamily osFamily : distro.osFamily) { if (osFamily == currentOSFamily) { return distro.distro; } } } return null; } }