aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/util/platform.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/util/platform.rs')
-rw-r--r--crates/shirabe/src/util/platform.rs32
1 files changed, 16 insertions, 16 deletions
diff --git a/crates/shirabe/src/util/platform.rs b/crates/shirabe/src/util/platform.rs
index 72fe5f9..889da6e 100644
--- a/crates/shirabe/src/util/platform.rs
+++ b/crates/shirabe/src/util/platform.rs
@@ -5,11 +5,11 @@ use std::sync::Mutex;
use anyhow::Result;
use shirabe_external_packages::composer::pcre::Preg;
use shirabe_php_shim::{
- PhpMixed, PhpResource, RuntimeException, defined, env_contains_key, env_get, env_set,
- env_unset, file_exists, file_get_contents, fstat, function_exists, getcwd, getenv, in_array,
- ini_get, is_array, is_readable, mb_strlen, php_os_family, posix_geteuid, posix_getpwuid,
- posix_getuid, posix_isatty, putenv, realpath, server_contains_key, server_get, server_set,
- server_unset, stream_isatty, stripos, strlen, strtoupper, substr, usleep,
+ PHP_ENV, PHP_SERVER, PhpMixed, PhpResource, RuntimeException, defined, file_exists,
+ file_get_contents, fstat, function_exists, getcwd, getenv, in_array, ini_get, is_array,
+ is_readable, mb_strlen, php_os_family, posix_geteuid, posix_getpwuid, posix_getuid,
+ posix_isatty, putenv, putenv_clear, realpath, stream_isatty, stripos, strlen, strtoupper,
+ substr, usleep,
};
use crate::util::ProcessExecutor;
@@ -66,28 +66,28 @@ impl Platform {
///
/// @return string|false
pub fn get_env(name: &str) -> Option<String> {
- if server_contains_key(name) {
- return Some(server_get(name).unwrap_or_default());
+ if let Some(value) = PHP_SERVER.lock().unwrap().get(name) {
+ return Some(value.to_string_lossy().into_owned());
}
- if env_contains_key(name) {
- return Some(env_get(name).unwrap_or_default());
+ if let Some(value) = PHP_ENV.lock().unwrap().get(name) {
+ return Some(value.to_string_lossy().into_owned());
}
- getenv(name)
+ getenv(name).map(|value| value.to_string_lossy().into_owned())
}
/// putenv() equivalent but updates the runtime global variables too
pub fn put_env(name: &str, value: &str) {
- putenv(&format!("{}={}", name, value));
- server_set(name, value.to_string());
- env_set(name, value.to_string());
+ unsafe { putenv(name, value) };
+ PHP_SERVER.lock().unwrap().put(name.into(), value.into());
+ PHP_ENV.lock().unwrap().put(name.into(), value.into());
}
/// putenv('X') equivalent but updates the runtime global variables too
pub fn clear_env(name: &str) {
- putenv(name);
- server_unset(name);
- env_unset(name);
+ unsafe { putenv_clear(name) };
+ PHP_SERVER.lock().unwrap().clear(name);
+ PHP_ENV.lock().unwrap().clear(name);
}
/// Parses tildes and environment variables in paths.