aboutsummaryrefslogtreecommitdiff
path: root/vendor/anstyle-query/src
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/anstyle-query/src')
-rw-r--r--vendor/anstyle-query/src/lib.rs134
-rw-r--r--vendor/anstyle-query/src/windows.rs78
2 files changed, 0 insertions, 212 deletions
diff --git a/vendor/anstyle-query/src/lib.rs b/vendor/anstyle-query/src/lib.rs
deleted file mode 100644
index 4b3745a..0000000
--- a/vendor/anstyle-query/src/lib.rs
+++ /dev/null
@@ -1,134 +0,0 @@
-pub mod windows;
-
-/// Check [CLICOLOR] status
-///
-/// - When `true`, ANSI colors are supported and should be used when the program isn't piped,
-/// similar to [`term_supports_color`]
-/// - When `false`, don’t output ANSI color escape codes, similar to [`no_color`]
-///
-/// See also:
-/// - [terminfo](https://crates.io/crates/terminfo) or [term](https://crates.io/crates/term) for
-/// checking termcaps
-/// - [termbg](https://crates.io/crates/termbg) for detecting background color
-///
-/// [CLICOLOR]: https://bixense.com/clicolors/
-#[inline]
-pub fn clicolor() -> Option<bool> {
- let value = std::env::var_os("CLICOLOR")?;
- Some(value != "0")
-}
-
-/// Check [CLICOLOR_FORCE] status
-///
-/// ANSI colors should be enabled no matter what.
-///
-/// [CLICOLOR_FORCE]: https://bixense.com/clicolors/
-#[inline]
-pub fn clicolor_force() -> bool {
- let value = std::env::var_os("CLICOLOR_FORCE");
- value
- .as_deref()
- .unwrap_or_else(|| std::ffi::OsStr::new("0"))
- != "0"
-}
-
-/// Check [NO_COLOR] status
-///
-/// When `true`, should prevent the addition of ANSI color.
-///
-/// User-level configuration files and per-instance command-line arguments should override
-/// [NO_COLOR]. A user should be able to export `$NO_COLOR` in their shell configuration file as a
-/// default, but configure a specific program in its configuration file to specifically enable
-/// color.
-///
-/// [NO_COLOR]: https://no-color.org/
-#[inline]
-pub fn no_color() -> bool {
- let value = std::env::var_os("NO_COLOR");
- value.as_deref().unwrap_or_else(|| std::ffi::OsStr::new("")) != ""
-}
-
-/// Check `TERM` for color support
-#[inline]
-#[cfg(not(windows))]
-pub fn term_supports_color() -> bool {
- match std::env::var_os("TERM") {
- // If TERM isn't set, then we are in a weird environment that
- // probably doesn't support colors.
- None => return false,
- Some(k) => {
- if k == "dumb" {
- return false;
- }
- }
- }
- true
-}
-
-/// Check `TERM` for color support
-#[inline]
-#[cfg(windows)]
-pub fn term_supports_color() -> bool {
- // On Windows, if TERM isn't set, then we shouldn't automatically
- // assume that colors aren't allowed. This is unlike Unix environments
- // where TERM is more rigorously set.
- if let Some(k) = std::env::var_os("TERM") {
- if k == "dumb" {
- return false;
- }
- }
- true
-}
-
-/// Check `TERM` for ANSI color support
-#[inline]
-#[cfg(not(windows))]
-pub fn term_supports_ansi_color() -> bool {
- term_supports_color()
-}
-
-/// Check `TERM` for ANSI color support
-#[inline]
-#[cfg(windows)]
-pub fn term_supports_ansi_color() -> bool {
- match std::env::var_os("TERM") {
- // If TERM isn't set, then we are in a weird environment that
- // probably doesn't support ansi.
- None => return false,
- Some(k) => {
- // cygwin doesn't seem to support ANSI escape sequences
- // and instead has its own variety. However, the Windows
- // console API may be available.
- if k == "dumb" || k == "cygwin" {
- return false;
- }
- }
- }
- true
-}
-
-/// Check [COLORTERM] for truecolor support
-///
-/// [COLORTERM]: https://github.com/termstandard/colors
-#[inline]
-pub fn truecolor() -> bool {
- let value = std::env::var_os("COLORTERM");
- let value = value.as_deref().unwrap_or_default();
- value == "truecolor" || value == "24bit"
-}
-
-/// Report whether this is running in CI
-///
-/// CI is a common environment where, despite being piped, ansi color codes are supported
-///
-/// This is not as exhaustive as you'd find in a crate like `is_ci` but it should work in enough
-/// cases.
-#[inline]
-pub fn is_ci() -> bool {
- // Assuming its CI based on presence because who would be setting `CI=false`?
- //
- // This makes it easier to all of the potential values when considering our known values:
- // - Gitlab and Github set it to `true`
- // - Woodpecker sets it to `woodpecker`
- std::env::var_os("CI").is_some()
-}
diff --git a/vendor/anstyle-query/src/windows.rs b/vendor/anstyle-query/src/windows.rs
deleted file mode 100644
index a8ce404..0000000
--- a/vendor/anstyle-query/src/windows.rs
+++ /dev/null
@@ -1,78 +0,0 @@
-//! Windows-specific style queries
-
-#[cfg(windows)]
-mod windows_console {
- use std::os::windows::io::AsRawHandle;
- use std::os::windows::io::RawHandle;
-
- use windows_sys::Win32::System::Console::CONSOLE_MODE;
- use windows_sys::Win32::System::Console::ENABLE_VIRTUAL_TERMINAL_PROCESSING;
-
- fn enable_vt(handle: RawHandle) -> std::io::Result<()> {
- unsafe {
- let handle = std::mem::transmute(handle);
- if handle == 0 {
- return Err(std::io::Error::new(
- std::io::ErrorKind::BrokenPipe,
- "console is detached",
- ));
- }
-
- let mut dwmode: CONSOLE_MODE = 0;
- if windows_sys::Win32::System::Console::GetConsoleMode(handle, &mut dwmode) == 0 {
- return Err(std::io::Error::last_os_error());
- }
-
- dwmode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
- if windows_sys::Win32::System::Console::SetConsoleMode(handle, dwmode) == 0 {
- return Err(std::io::Error::last_os_error());
- }
-
- Ok(())
- }
- }
-
- pub fn enable_virtual_terminal_processing() -> std::io::Result<()> {
- let stdout = std::io::stdout();
- let stdout_handle = stdout.as_raw_handle();
- let stderr = std::io::stderr();
- let stderr_handle = stderr.as_raw_handle();
-
- enable_vt(stdout_handle)?;
- if stdout_handle != stderr_handle {
- enable_vt(stderr_handle)?;
- }
-
- Ok(())
- }
-
- #[inline]
- pub(crate) fn enable_ansi_colors() -> Option<bool> {
- Some(
- enable_virtual_terminal_processing()
- .map(|_| true)
- .unwrap_or(false),
- )
- }
-}
-
-#[cfg(not(windows))]
-mod windows_console {
- #[inline]
- pub(crate) fn enable_ansi_colors() -> Option<bool> {
- None
- }
-}
-
-/// Enable ANSI escape codes (ENABLE_VIRTUAL_TERMINAL_PROCESSING)
-///
-/// For non-windows systems, returns `None`
-pub fn enable_ansi_colors() -> Option<bool> {
- windows_console::enable_ansi_colors()
-}
-
-/// Raw ENABLE_VIRTUAL_TERMINAL_PROCESSING on stdout/stderr
-#[cfg(windows)]
-pub fn enable_virtual_terminal_processing() -> std::io::Result<()> {
- windows_console::enable_virtual_terminal_processing()
-}