cloak 0.1.0

A Command Line OTP Authenticator application.
#[macro_use]
extern crate clap;
extern crate data_encoding;
extern crate dirs;
extern crate open;
#[macro_use]
extern crate failure;
extern crate ring;
extern crate serde;
#[macro_use]
extern crate serde_derive;
extern crate toml;

use clap::App;

mod cmd;
mod errors;
mod fs;
mod otp;

fn main() {
    // Define list of subcommand for the `cloak` app
    let matches = App::new(crate_name!())
        .author(crate_authors!("\n"))
        .about(crate_description!())
        .version(crate_version!())
        .subcommand(cmd::add::subcommand())
        .subcommand(cmd::view::subcommand())
        .subcommand(cmd::list::subcommand())
        .subcommand(cmd::delete::subcommand())
        .subcommand(cmd::recovery_codes::subcommand())
        .get_matches();

    match matches.subcommand() {
        ("add", Some(sub_m)) => cmd::add::run(&sub_m),
        ("view", Some(sub_m)) => cmd::view::run(&sub_m),
        ("list", Some(_)) => cmd::list::run(),
        ("delete", Some(sub_m)) => cmd::delete::run(&sub_m),
        ("recovery_codes", Some(sub_m)) => cmd::recovery_codes::run(&sub_m),
        _ => eprintln!("No subcommand chosen")
    }
}