diff options
-rw-r--r-- | build.rs | 16 | ||||
-rw-r--r-- | src/main.rs | 17 |
2 files changed, 33 insertions, 0 deletions
diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..fef4321 --- /dev/null +++ b/build.rs @@ -0,0 +1,16 @@ +use std::process::Command; + +fn main() { + let build = String::from_utf8_lossy( + &Command::new("git") + .args(&["rev-parse", "HEAD"]) + .output() + .unwrap() + .stdout, + ) + .to_string(); + println!( + "cargo::rustc-env=DWVSH_BUILD={}", + build.get(0..10).unwrap_or(&build) + ); +} diff --git a/src/main.rs b/src/main.rs index 821dde2..f87b69d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -82,6 +82,20 @@ fn repl(away: &mut Arc<Mutex<bool>>, env: &mut Environment) { } } +fn options() { + let args: Vec<String> = env::args().collect(); + for arg in args.iter() { + if arg.eq("--version") { + println!( + "dwvsh v{} ({})", + env!("CARGO_PKG_VERSION"), + env!("DWVSH_BUILD") + ); + std::process::exit(0); + } + } +} + /// Shell entry /// /// Shell setup and entry @@ -108,6 +122,9 @@ fn main() { .unwrap(); }; + // Parse flags and other arguments + options(); + // Begin evaluating commands repl(&mut away, &mut env); } |