diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/main.rs b/src/main.rs index 290ddda..8966028 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,10 +1,20 @@ -use cat::{Cli, Result}; +use catr::{run, Cli, HELP}; -/// I assumed I should keep this "DIY". I would most likely use some "de facto" external -/// libraries like `clap`, `serde`, ect. +fn main() { + let cli = match Cli::parse() { + Ok(cli) => cli, + Err(err) => { + eprintln!("{}\n{}", err, HELP); + std::process::exit(1); + } + }; -fn main() -> Result<()> { - let cli = Cli::parse()?; - - cli.run() + if cli.opts.help { + println!("{}", HELP) + } else if cli.opts.version { + println!("catr (rust port of cat) v{}", env!("CARGO_PKG_VERSION")) + } else if let Err(err) = run(cli) { + eprintln!("{}", err); + std::process::exit(1); + } } |