add code subcommand back in, because it makes the arg parsing better

This commit is contained in:
Carson McManus 2022-06-21 19:31:17 -04:00
parent fdc61e63d1
commit a52af3675b
2 changed files with 12 additions and 17 deletions

View file

@ -32,14 +32,11 @@ pub(crate) struct Args {
#[clap(short, long, arg_enum, default_value_t=Verbosity::Info, help = "Set the log level. Be warned, trace is capable of printing sensitive data.")]
pub verbosity: Verbosity,
#[clap(
long,
help = "Assume the computer's time is correct. Don't ask Steam for the time when generating codes."
)]
pub offline: bool,
#[clap(subcommand)]
pub sub: Option<Subcommands>,
#[clap(flatten)]
pub code: ArgsCode,
}
#[derive(Debug, Clone, Parser)]
@ -52,6 +49,7 @@ pub(crate) enum Subcommands {
Remove(ArgsRemove),
Encrypt(ArgsEncrypt),
Decrypt(ArgsDecrypt),
Code(ArgsCode),
}
#[derive(Debug, Clone, Copy, ArgEnum)]
@ -164,8 +162,6 @@ pub(crate) struct ArgsCode {
// See: https://github.com/clap-rs/clap/issues/3857
impl From<Args> for ArgsCode {
fn from(args: Args) -> Self {
ArgsCode {
offline: args.offline,
}
args.code
}
}

View file

@ -168,21 +168,20 @@ fn run() -> anyhow::Result<()> {
.collect::<Vec<String>>()
);
match args.sub {
Some(cli::Subcommands::Trade(args)) => {
match args.sub.unwrap_or(cli::Subcommands::Code(args.code)) {
cli::Subcommands::Trade(args) => {
return do_subcmd_trade(args, &mut manifest, selected_accounts);
}
Some(cli::Subcommands::Remove(args)) => {
cli::Subcommands::Remove(args) => {
return do_subcmd_remove(args, &mut manifest, selected_accounts);
}
Some(s) => {
cli::Subcommands::Code(args) => {
return do_subcmd_code(args, selected_accounts);
}
s => {
error!("Unknown subcommand: {:?}", s);
return Err(errors::UserError::UnknownSubcommand.into());
}
_ => {
debug!("No subcommand given, assuming user wants a 2fa code");
return do_subcmd_code(args.into(), selected_accounts);
}
}
}