feat: 1.7.5, supports dialoguer
This commit is contained in:
@@ -7,6 +7,8 @@ use std::process::Command;
|
||||
use std::time::{Instant, SystemTime};
|
||||
|
||||
use clap::Args;
|
||||
use dialoguer::Select;
|
||||
use dialoguer::theme::ColorfulTheme;
|
||||
use flate2::Compression;
|
||||
use openpgp_card::crypto_data::Cryptogram;
|
||||
use rust_util::{
|
||||
@@ -743,11 +745,26 @@ pub fn select_envelop<'a>(meta: &'a TinyEncryptMeta, key_id: &Option<String>, co
|
||||
}
|
||||
}
|
||||
|
||||
// TODO optimize select for exec-env
|
||||
envelops.iter().enumerate().for_each(|(i, envelop)| {
|
||||
println_ex!("#{} {}", i + 1, util_envelop::format_envelop(envelop, config));
|
||||
});
|
||||
let envelop_number = util::read_number("Please select an envelop:", 1, envelops.len());
|
||||
let use_dialoguer = util_env::get_use_dialoguer();
|
||||
let envelop_number = if use_dialoguer {
|
||||
let format_envelops = envelops.iter().map(|envelop| {
|
||||
format!("#{}", util_envelop::format_envelop(envelop, config))
|
||||
}).collect::<Vec<_>>();
|
||||
// TODO catch ctrl-c Term::show_cursor()
|
||||
let select_result = Select::with_theme(&ColorfulTheme::default())
|
||||
.with_prompt("Please select envelop: ")
|
||||
.items(&format_envelops[..])
|
||||
.default(0)
|
||||
.report(false)
|
||||
.clear(true)
|
||||
.interact();
|
||||
opt_result!(select_result, "Select envelop error: {}") + 1
|
||||
} else {
|
||||
envelops.iter().enumerate().for_each(|(i, envelop)| {
|
||||
println_ex!("#{} {}", i + 1, util_envelop::format_envelop(envelop, config));
|
||||
});
|
||||
util::read_number("Please select an envelop:", 1, envelops.len())
|
||||
};
|
||||
|
||||
let selected_envelop = &envelops[envelop_number - 1];
|
||||
if silent {
|
||||
|
||||
Reference in New Issue
Block a user