/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package se.kth.karamel.backend.launcher; import se.kth.karamel.common.exception.KaramelException; /** * * @author kamal */ public enum OsType { CENTOS("centos", LinuxFamily.REDHAT), FEDORA("fedora", LinuxFamily.REDHAT), REDHAT("redhat", LinuxFamily.REDHAT), UBUNTU("ubuntu", LinuxFamily.UBUNTU), DEBIAN("debian", LinuxFamily.UBUNTU); public static enum LinuxFamily { REDHAT, UBUNTU }; public final String distro; public final LinuxFamily family; private OsType(String distro, LinuxFamily family) { this.distro = distro; this.family = family; } public static OsType valuebyDestroString(String distro) throws KaramelException { for (OsType osType : OsType.values()) { if (distro.toLowerCase().contains(osType.distro)) { return osType; } } throw new KaramelException("Unrecognized linux distro: " + distro); } }