feat: add listing only items matching valid ssh key item criteria
Diff
src/main.rs | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)
@@ -25,6 +25,10 @@ struct Cli {
const SESSION_ENV_KEY: &str = "BW_SESSION";
const BW_FIELD_KEY_FILENAME: &str = "private";
const BW_FIELD_KEY_PASSPHRASE: &str = "passphrase";
fn main() -> Result<()> {
let args: Cli = Cli::parse_args_default_or_exit();
@@ -42,7 +46,32 @@ fn main() -> Result<()> {
for folder in folders {
let folder_items = bwutil::exec_list_folder_items(&session_token, &folder.id)?;
for item in folder_items {
println!("{:#?}", item);
if let Some(fields) = &item.fields {
let mut key_filename = String::new();
let mut key_passphrase = String::new();
for field in fields {
if field.name.to_lowercase().eq(&String::from(BW_FIELD_KEY_FILENAME).to_lowercase()) {
key_filename.push_str(&field.value);
}
if field.name.to_lowercase().eq(&String::from(BW_FIELD_KEY_PASSPHRASE).to_lowercase()) {
key_passphrase.push_str(&field.value);
}
}
if let Some(attachments) = &item.attachments {
for attachment in attachments {
if attachment.file_name.eq(&key_filename) {
println!("{:#?}", item);
}
}
}
}
}
}
}