public static boolean isFamily()

in impl/maven-impl/src/main/java/org/apache/maven/impl/util/Os.java [169:201]


    public static boolean isFamily(String family, String actualOsName) {
        // windows probing logic relies on the word 'windows' in the OS
        boolean isWindows = actualOsName.contains(FAMILY_WINDOWS);
        boolean is9x = false;
        boolean isNT = false;
        if (isWindows) {
            // there are only four 9x platforms that we look for
            is9x = (actualOsName.contains("95")
                    || actualOsName.contains("98")
                    || actualOsName.contains("me")
                    // wince isn't really 9x, but crippled enough to
                    // be a muchness. Maven doesn't run on CE, anyway.
                    || actualOsName.contains("ce"));
            isNT = !is9x;
        }
        return switch (family) {
            case FAMILY_WINDOWS -> isWindows;
            case FAMILY_WIN9X -> isWindows && is9x;
            case FAMILY_NT -> isWindows && isNT;
            case FAMILY_OS2 -> actualOsName.contains(FAMILY_OS2);
            case FAMILY_NETWARE -> actualOsName.contains(FAMILY_NETWARE);
            case FAMILY_DOS -> PATH_SEP.equals(";") && !isFamily(FAMILY_NETWARE, actualOsName) && !isWindows;
            case FAMILY_MAC -> actualOsName.contains(FAMILY_MAC) || actualOsName.contains(DARWIN);
            case FAMILY_TANDEM -> actualOsName.contains("nonstop_kernel");
            case FAMILY_UNIX -> PATH_SEP.equals(":")
                    && !isFamily(FAMILY_OPENVMS, actualOsName)
                    && (!isFamily(FAMILY_MAC, actualOsName) || actualOsName.endsWith("x"));
            case FAMILY_ZOS -> actualOsName.contains(FAMILY_ZOS) || actualOsName.contains(FAMILY_OS390);
            case FAMILY_OS400 -> actualOsName.contains(FAMILY_OS400);
            case FAMILY_OPENVMS -> actualOsName.contains(FAMILY_OPENVMS);
            default -> actualOsName.contains(family.toLowerCase(Locale.US));
        };
    }