use cassiopeia::{self as cass, meta}; use clap::{App, Arg, SubCommand}; fn main() { let app = App::new(meta::NAME) .version(meta::VERSION) .about(meta::ABOUT) .after_help("To learn more on how to use cassiopeia, check out the documentation \ at https://git.spacekookie.de/kookienomicon/tree/apps/cassiopeia If you want to report a bug, please do so on my mailing list: lists.sr.ht/~spacekookie/public-inbox") .author(meta::AUTHOR) .max_term_width(120) .setting(clap::AppSettings::SubcommandRequiredElseHelp) .global_settings(&[ clap::AppSettings::DisableHelpSubcommand, clap::AppSettings::VersionlessSubcommands, ]) .arg( Arg::with_name(meta::ARG_FILE) .short("f") .long("file") .help(meta::ARG_FILE_ABOUT) .default_value("./time.cass") .takes_value(true), ) .subcommand( SubCommand::with_name(meta::CMD_START) .about(meta::CMD_START_ABOUT) .arg(Arg::with_name(meta::ARG_ROUNDING).help(meta::ARG_ROUNDING_ABOUT)), ) .subcommand( SubCommand::with_name(meta::CMD_STOP) .about(meta::CMD_STOP_ABOUT) .arg(Arg::with_name(meta::ARG_ROUNDING).help(meta::ARG_ROUNDING_ABOUT)), ) .subcommand( SubCommand::with_name(meta::CMD_INVOICE) .about(meta::CMD_INVOICE_ABOUT) .arg( Arg::with_name(meta::ARG_CLIENT) .short("c") .long("client") .takes_value(true) .help(meta::ARG_CLIENT_ABOUT), ) .arg( Arg::with_name(meta::ARG_PROJECT) .short("p") .long("project") .takes_value(true) .help(meta::ARG_PROJECT_ABOUT), ) .arg( Arg::with_name(meta::ARG_GEN_YAML) .short("g") .long("gen") .help(meta::ARG_GEN_YAML_ABOUT), ) .arg( Arg::with_name(meta::ARG_CLIENT_DB) .long("client-db") .takes_value(true) .help(meta::ARG_CLIENT_DB_ABOUT), ) ) .get_matches(); let file = cass::load_file("/home/projects/clients/nyantec-nix-workshops/time.cass"); }