/*
* Copyright 2013-present Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
package com.facebook.buck.util.environment;
public enum Platform {
LINUX("Linux", "linux"),
MACOS("OS X", "darwin"),
WINDOWS("Windows", "windows"),
FREEBSD("FreeBSD", "freebsd"),
UNKNOWN("Unknown", "unknown");
private String autoconfName;
private String platformName;
Platform(String platformName, String autoconfName) {
this.platformName = platformName;
this.autoconfName = autoconfName;
}
/** @return platform name as used in autoconf target tuples */
public String getAutoconfName() {
return autoconfName;
}
public String getPrintableName() {
return platformName;
}
public static Platform detect() {
String platformName = System.getProperty("os.name");
if (platformName == null) {
return UNKNOWN;
} else if (platformName.startsWith("Linux")) {
return LINUX;
} else if (platformName.startsWith("Mac OS")) {
return MACOS;
} else if (platformName.startsWith("Windows")) {
return WINDOWS;
} else if (platformName.startsWith("FreeBSD")) {
return FREEBSD;
} else {
return UNKNOWN;
}
}
}