recl 0.2.1

A simple program to record CLI with.
use std::env::args;

pub mod log;
use log::{log_from_file, log_to_file, Log};

mod record;
use record::record;

mod play;
use play::play;

mod output;
use output::{comment, usage};

fn main() {
    let words: Vec<String> = args().collect();

    if let Some(operator) = words.get(1) {
        match operator.as_ref() {
            "r" | "record" => match words.get(2) {
                Some(filename) => match record(&words[3..]) {
                    Ok(log) => match log_to_file(&log, filename) {
                        Ok(_) => comment("ok"),
                        Err(e) => comment(&format!("error: {}", e)),
                    },
                    Err(e) => comment(&format!("error: {}", e)),
                },
                None => usage(),
            },
            "p" | "play" => match words.get(2) {
                Some(filename) => match log_from_file(filename) {
                    Ok(log) => play(&log),
                    Err(e) => comment(&format!("error: {}", e)),
                },
                None => usage(),
            },
            "-v" | "--version" => println!(
                "{} version {}",
                env!("CARGO_PKG_NAME"),
                env!("CARGO_PKG_VERSION")
            ),
            _ => {
                comment(&format!("unknown operator: {}", operator));
                usage();
            }
        }
    } else {
        usage();
    }
}