blob: db82baf793fa09497141f79064beda406894da4a [file] [log] [blame]
//
// ========================================================================
// Copyright (c) 1995-2015 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.toolchain.test;
import java.io.File;
/**
* Some simple OS specific utilities.
*/
public final class OS
{
/**
* The name of the OS
*/
public static final String OS_NAME = System.getProperty("os.name");
/**
* True if OS is windows
*/
public static final boolean IS_WINDOWS = isOSName("Windows");
/**
* True if OS is OSX
*/
public static final boolean IS_OSX = isOSName("Mac OS X");
/**
* True if OS is Linux
*/
public static final boolean IS_LINUX = isOSName("Linux") || isOSName("LINUX");
/**
* True if OS is Unix (Unix || AIX || Linux || OSX)
*/
public static final boolean IS_UNIX = isOSName("Unix") || isOSName("AIX") || IS_LINUX || IS_OSX;
/**
* Line Separator string.
* <p>
* Note: For Java 1.7 or newer, use {@link System#lineSeparator()}
*/
public static final String LN = System.getProperty("line.separator");
private OS()
{
/* prevent instantiation */
}
/**
* Convert path separators to the System path separators.
* <p>
* This helps ensure that the paths provided in the unit tests work equally as well on unix / osx / windows.
*
* @param path
* the raw path to convert
* @return the converted path
*/
public static String separators(String path)
{
StringBuilder ret = new StringBuilder();
for (char c : path.toCharArray())
{
if ((c == '/') || (c == '\\'))
{
ret.append(File.separatorChar);
}
else
{
ret.append(c);
}
}
return ret.toString();
}
/**
* Simple test for OS Name
*
* @param name
* the name to look for
* @return true if the name is found in the system OS name.
*/
private static boolean isOSName(String name)
{
if (OS_NAME == null || name == null)
{
return false;
}
return OS_NAME.contains(name);
}
}