aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates
diff options
context:
space:
mode:
Diffstat (limited to 'crates')
-rw-r--r--crates/shirabe/src/util/ini_helper.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/crates/shirabe/src/util/ini_helper.rs b/crates/shirabe/src/util/ini_helper.rs
index c0125d9..e09b94f 100644
--- a/crates/shirabe/src/util/ini_helper.rs
+++ b/crates/shirabe/src/util/ini_helper.rs
@@ -1 +1,37 @@
//! ref: composer/src/Composer/Util/IniHelper.php
+
+use shirabe_external_packages::composer::xdebug_handler::xdebug_handler::XdebugHandler;
+
+pub struct IniHelper;
+
+impl IniHelper {
+ /// Returns an array of php.ini locations with at least one entry.
+ pub fn get_all() -> Vec<String> {
+ XdebugHandler::get_all_ini_files()
+ }
+
+ /// Describes the location of the loaded php.ini file(s).
+ pub fn get_message() -> String {
+ let mut paths = Self::get_all();
+
+ if paths.first().map_or(false, |s| s.is_empty()) {
+ paths.remove(0);
+ }
+
+ let ini = if paths.is_empty() {
+ String::new()
+ } else {
+ paths.remove(0)
+ };
+
+ if ini.is_empty() {
+ return "A php.ini file does not exist. You will have to create one.".to_string();
+ }
+
+ if !paths.is_empty() {
+ return "Your command-line PHP is using multiple ini files. Run `php --ini` to show them.".to_string();
+ }
+
+ format!("The php.ini used by your command-line PHP is: {}", ini)
+ }
+}