diff options
Diffstat (limited to 'src/context.rs')
-rw-r--r-- | src/context.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/context.rs b/src/context.rs new file mode 100644 index 000000000..32e9fab11 --- /dev/null +++ b/src/context.rs @@ -0,0 +1,30 @@ +use clap::ArgMatches; +use std::env; +use std::path::PathBuf; + +pub struct Context<'a> { + pub current_dir: PathBuf, + pub arguments: ArgMatches<'a>, +} + +impl<'a> Context<'a> { + pub fn new(arguments: ArgMatches) -> Context { + // TODO: Currently gets the physical directory. Get the logical directory. + let current_dir = env::current_dir().expect("Unable to identify current directory."); + + Context { + current_dir, + arguments, + } + } + + pub fn new_with_dir<T>(arguments: ArgMatches, dir: T) -> Context + where + T: Into<PathBuf>, + { + Context { + current_dir: dir.into(), + arguments, + } + } +} |