diff --git a/README.md b/README.md index 0450d19..10647d5 100644 --- a/README.md +++ b/README.md @@ -113,6 +113,7 @@ Please follow the instruction for your shell: > - `_PR_PACKAGE_MANAGER`: Use defined package manager instead of > auto-detecting alphabetically. Empty value disables package search > functionality +> - `_DEF_PR_PACKAGE_MANAGER`: compile-time value > You can specify different modes to run with `_PR_MODE`: > diff --git a/core/src/args.rs b/core/src/args.rs index 35934ce..8eb5058 100644 --- a/core/src/args.rs +++ b/core/src/args.rs @@ -79,6 +79,10 @@ fn print_version() { if lib.is_some() { println!("Default lib directory: {}", lib.unwrap()); } + let package_manager = option_env!("_DEF_PR_PACKAGE_MANAGER").map(|dir| dir.to_string()); + if package_manager.is_some() { + println!("Default package manager: {}", package_manager.unwrap()); + } } #[cfg(test)] diff --git a/core/src/modes.rs b/core/src/modes.rs index fe94a95..6c89d7a 100644 --- a/core/src/modes.rs +++ b/core/src/modes.rs @@ -1,6 +1,6 @@ -use std::path::Path; use colored::Colorize; use inquire::*; +use std::path::Path; use ui::Color; use pay_respects_utils::evals::best_matches_path; diff --git a/core/src/system.rs b/core/src/system.rs index 8d0c28f..d709a85 100644 --- a/core/src/system.rs +++ b/core/src/system.rs @@ -13,6 +13,13 @@ pub fn get_package_manager(data: &mut Data) -> Option { return Some(package_manager); } + if let Some(package_manager) = option_env!("_DEF_PR_PACKAGE_MANAGER") { + if package_manager.is_empty() { + return None; + } + return Some(package_manager.to_string()); + } + for package_manager in &[ "apt", "dnf", "emerge", "guix", "nix", "pacman", "yum", // "zypper",