blob: 839a08704f3219e483efda1c3c94efcdf557fc67 [file] [log] [blame]
/*
* Copyright (c) 2002-2016, the original author or authors.
*
* This software is distributable under the BSD license. See the terms of the
* BSD license in the documentation provided with this software.
*
* https://opensource.org/licenses/BSD-3-Clause
*/
package jdk.internal.org.jline.utils;
import java.io.File;
public class OSUtils {
public static final boolean IS_WINDOWS = System.getProperty("os.name").toLowerCase().contains("win");
public static final boolean IS_CYGWIN = IS_WINDOWS
&& System.getenv("PWD") != null
&& System.getenv("PWD").startsWith("/");
@Deprecated
public static final boolean IS_MINGW = IS_WINDOWS
&& System.getenv("MSYSTEM") != null
&& System.getenv("MSYSTEM").startsWith("MINGW");
public static final boolean IS_MSYSTEM = IS_WINDOWS
&& System.getenv("MSYSTEM") != null
&& (System.getenv("MSYSTEM").startsWith("MINGW")
|| System.getenv("MSYSTEM").equals("MSYS"));
public static final boolean IS_CONEMU = IS_WINDOWS
&& System.getenv("ConEmuPID") != null;
public static final boolean IS_OSX = System.getProperty("os.name").toLowerCase().contains("mac");
public static final boolean IS_AIX = System.getProperty("os.name").equals("AIX");
public static String TTY_COMMAND;
public static String STTY_COMMAND;
public static String STTY_F_OPTION;
public static String INFOCMP_COMMAND;
static {
String tty;
String stty;
String sttyfopt;
String infocmp;
if (OSUtils.IS_CYGWIN || OSUtils.IS_MSYSTEM) {
tty = "tty.exe";
stty = "stty.exe";
sttyfopt = null;
infocmp = "infocmp.exe";
String path = System.getenv("PATH");
if (path != null) {
String[] paths = path.split(";");
for (String p : paths) {
if (tty == null && new File(p, "tty.exe").exists()) {
tty = new File(p, "tty.exe").getAbsolutePath();
}
if (stty == null && new File(p, "stty.exe").exists()) {
stty = new File(p, "stty.exe").getAbsolutePath();
}
if (infocmp == null && new File(p, "infocmp.exe").exists()) {
infocmp = new File(p, "infocmp.exe").getAbsolutePath();
}
}
}
} else {
tty = "tty";
stty = "stty";
infocmp = "infocmp";
if (IS_OSX) {
sttyfopt = "-f";
}
else {
sttyfopt = "-F";
}
}
TTY_COMMAND = tty;
STTY_COMMAND = stty;
STTY_F_OPTION = sttyfopt;
INFOCMP_COMMAND = infocmp;
}
}