From e18affc1ea40364b5e1b800ac8d579a71690ed27 Mon Sep 17 00:00:00 2001 From: Heiko Schaefer Date: Fri, 25 Mar 2022 21:05:40 +0100 Subject: [PATCH] Print guidance for the '--card' parameter in status/ssh, when more than one card is plugged in. --- tools/src/bin/opgpcard/main.rs | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/tools/src/bin/opgpcard/main.rs b/tools/src/bin/opgpcard/main.rs index 991214e..44a1469 100644 --- a/tools/src/bin/opgpcard/main.rs +++ b/tools/src/bin/opgpcard/main.rs @@ -30,6 +30,7 @@ fn main() -> Result<(), Box> { match cli.cmd { cli::Command::List {} => { + println!("Available OpenPGP cards:"); list_cards()?; } cli::Command::Status { ident, verbose } => { @@ -133,8 +134,6 @@ fn main() -> Result<(), Box> { fn list_cards() -> Result<()> { let cards = util::cards()?; if !cards.is_empty() { - println!("Available OpenPGP cards:"); - for mut card in cards { let mut pgp = OpenPgp::new(&mut card); let open = Open::new(pgp.transaction()?)?; @@ -163,8 +162,17 @@ fn print_status(ident: Option, verbose: bool) -> Result<()> { let mut cards = util::cards()?; if cards.len() == 1 { Box::new(cards.pop().unwrap()) + } else if cards.is_empty() { + return Err(anyhow::anyhow!("No cards found")); } else { - return Err(anyhow::anyhow!("Found {} cards", cards.len())); + println!("Found {} cards:", cards.len()); + list_cards()?; + + println!(); + println!("Specify which card to use with '--card '"); + println!(); + + return Err(anyhow::anyhow!("Specify card")); } }; @@ -315,8 +323,17 @@ fn print_ssh(ident: Option) -> Result<()> { let mut cards = util::cards()?; if cards.len() == 1 { Box::new(cards.pop().unwrap()) + } else if cards.is_empty() { + return Err(anyhow::anyhow!("No cards found")); } else { - return Err(anyhow::anyhow!("Found {} cards", cards.len())); + println!("Found {} cards:", cards.len()); + list_cards()?; + + println!(); + println!("Specify which card to use with '--card '"); + println!(); + + return Err(anyhow::anyhow!("Specify card")); } };