//! ref: composer/src/Composer/Util/Platform.php
use std::sync::Mutex;
use anyhow::Result;
use shirabe_external_packages::composer::pcre::preg::Preg;
use shirabe_php_shim::{
PhpMixed, RuntimeException, defined, env_contains_key, env_get, env_set, env_unset,
file_exists, file_get_contents, fopen, fstat, function_exists, getcwd, getenv, in_array,
ini_get, is_array, is_readable, mb_strlen, posix_geteuid, posix_getpwuid, posix_getuid,
posix_isatty, putenv, realpath, server_argv, server_contains_key, server_get, server_set,
server_unset, stream_isatty, stripos, strlen, strtoupper, substr, usleep,
};
use crate::util::process_executor::ProcessExecutor;
use crate::util::silencer::Silencer;
/// Platform helper for uniform platform-specific tests.
pub struct Platform;
static IS_VIRTUAL_BOX_GUEST: Mutex