summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs24
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);
+ }
}