pub_just/
execution_context.rs1use 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}