Execution Context

This commit is contained in:
Roey Darwish Dror
2020-02-08 22:13:56 +02:00
committed by GitHub
parent fb5cf5c176
commit c716b68e9c
3 changed files with 69 additions and 4 deletions

57
src/execution_context.rs Normal file
View File

@@ -0,0 +1,57 @@
#![allow(dead_code)]
use crate::config::Config;
use crate::executor::RunType;
use directories::BaseDirs;
#[cfg(unix)]
use std::path::PathBuf;
pub struct ExecutionContext<'a> {
run_type: RunType,
#[cfg(unix)]
sudo: &'a Option<PathBuf>,
config: &'a Config,
base_dirs: &'a BaseDirs,
}
impl<'a> ExecutionContext<'a> {
#[cfg(unix)]
pub fn new(
run_type: RunType,
sudo: &'a Option<PathBuf>,
config: &'a Config,
base_dirs: &'a BaseDirs,
) -> ExecutionContext<'a> {
ExecutionContext {
run_type,
sudo,
config,
base_dirs,
}
}
#[cfg(not(unix))]
pub fn new(run_type: RunType, config: &'a Config, base_dirs: &'a BaseDirs) -> ExecutionContext<'a> {
ExecutionContext {
run_type,
config,
base_dirs,
}
}
pub fn run_type(&self) -> RunType {
self.run_type
}
#[cfg(unix)]
pub fn sudo(&self) -> &Option<PathBuf> {
&self.sudo
}
pub fn config(&self) -> &Config {
&self.config
}
pub fn base_dirs(&self) -> &BaseDirs {
&self.base_dirs
}
}