From c3d6e57de9ac3548eac8ac33dd4ab21426ab641a Mon Sep 17 00:00:00 2001 From: dvkt Date: Thu, 26 Dec 2019 19:57:59 -0800 Subject: [PATCH] basic flags --- src/main.rs | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/main.rs b/src/main.rs index 728b433..d598428 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,50 @@ use phd; +use std::process; fn main() { + let args: Vec = std::env::args().collect(); + if args.len() < 2 { + print_usage(); + return; + } + + let dir = args.get(1).unwrap(); + if dir == "--version" || dir == "-v" || dir == "-version" { + print_version(); + return; + } + + if dir == "--help" || dir == "-h" || dir == "-help" { + print_usage(); + return; + } + + if !dir.is_empty() && dir.starts_with('-') { + eprintln!("unknown flag: {}", dir); + process::exit(1); + } + println!("-> Listening on localhost:7070"); if let Err(e) = phd::start_server("localhost:7070") { eprintln!("{}", e); } } + +fn print_usage() { + println!( + "Usage: + + phd [options] + +Options: + + -p, --port Port to bind to. + -H, --host Hostname to use when generating links. + -h, --help Print this screen. + -v, --version Print phd version." + ); +} + +fn print_version() { + println!("phd v{}", env!("CARGO_PKG_VERSION")); +}