pub_just/
execution_context.rs

1use super::*;
2
3#[derive(Copy, Clone)]
4pub struct ExecutionContext<'src: 'run, 'run> {
5  pub config: &'run Config,
6  pub dotenv: &'run BTreeMap<String, String>,
7  pub module: &'run Justfile<'src>,
8  pub scope: &'run Scope<'src, 'run>,
9  pub search: &'run Search,
10}
11
12impl<'src: 'run, 'run> ExecutionContext<'src, 'run> {
13  pub fn working_directory(&self) -> PathBuf {
14    let base = if self.module.is_submodule() {
15      &self.module.working_directory
16    } else {
17      &self.search.working_directory
18    };
19
20    if let Some(setting) = &self.module.settings.working_directory {
21      base.join(setting)
22    } else {
23      base.into()
24    }
25  }
26}