diff --git a/README.md b/README.md index 04318f9..788f6df 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,12 @@ Please follow the instruction for your shell: > eval $(_PR_SHELL=sh _PR_LAST_COMMAND="git comit" pay-respects) > ``` +> Following variables are not required, but can be used to reduce unnecessary operations: +> +> - `_PR_ALIAS`: A list of aliases to commands. Separated by newlines with zsh-like formatting, e.g. `gc=git commit` +> - `_PR_ERROR_MSG`: Error message from the previous command. `pay-respects` will rerun previous command to get the error message if absent +> - `_PR_EXECUTABLES`: A space separated list of commands/executables. `pay-respects` will search for `$PATH` if absent +
diff --git a/module-runtime-rules/src/main.rs b/module-runtime-rules/src/main.rs index d29c404..bf2ecc1 100644 --- a/module-runtime-rules/src/main.rs +++ b/module-runtime-rules/src/main.rs @@ -23,14 +23,7 @@ fn main() -> Result<(), std::io::Error> { let shell = std::env::var("_PR_SHELL").expect("_PR_SHELL not set"); let last_command = std::env::var("_PR_LAST_COMMAND").expect("_PR_LAST_COMMAND not set"); let error_msg = std::env::var("_PR_ERROR_MSG").expect("_PR_ERROR_MSG not set"); - let executables: Vec = { - let exes = std::env::var("_PR_EXECUTABLES").expect("_PR_EXECUTABLES not set"); - if exes.is_empty() { - get_path_files() - } else { - exes.split(" ").map(|s| s.to_string()).collect() - } - }; + let executables: Vec = get_path_files(); #[cfg(debug_assertions)] { diff --git a/utils/src/files.rs b/utils/src/files.rs index 0f207ab..113c680 100644 --- a/utils/src/files.rs +++ b/utils/src/files.rs @@ -6,6 +6,13 @@ use crate::evals::find_similar; use itertools::Itertools; pub fn get_path_files() -> Vec { + let env = std::env::var("_PR_EXECUTABLES"); + if let Ok(env) = env { + if !env.is_empty() { + return env.split(' ').map(|s| s.to_owned()).collect(); + } + } + let path_env = path_env(); #[cfg(debug_assertions)]