Cleanup display output (#659)

This commit is contained in:
Firstyear 2022-03-28 13:39:07 +10:00 committed by GitHub
parent 5213ed4e01
commit 3f7c692a7c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 113 additions and 96 deletions

View file

@ -31,7 +31,7 @@ path = "src/badlist_preprocess.rs"
kanidm_client = { path = "../kanidm_client", version = "1.1.0-alpha.4" }
kanidm_proto = { path = "../kanidm_proto", version = "1.1.0-alpha.4" }
tracing = "0.1"
tracing-subscriber = "0.3"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
rpassword = "5.0"
structopt = { version = "0.3", default-features = false }
libc = "0.2"

View file

@ -100,7 +100,7 @@ impl AccountOpt {
);
}
Err(e) => {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
}
@ -114,7 +114,7 @@ impl AccountOpt {
) {
Ok(v) => v,
Err(e) => {
eprintln!("Error Starting Registration -> {:?}", e);
error!("Error Starting Registration -> {:?}", e);
return;
}
};
@ -126,7 +126,7 @@ impl AccountOpt {
let rego = match wa.do_registration(client.get_origin(), chal) {
Ok(rego) => rego,
Err(e) => {
eprintln!("Error Signing -> {:?}", e);
error!("Error Signing -> {:?}", e);
return;
}
};
@ -140,7 +140,7 @@ impl AccountOpt {
println!("Webauthn token registration success.");
}
Err(e) => {
eprintln!("Error Completing -> {:?}", e);
error!("Error Completing -> {:?}", e);
}
}
}
@ -154,7 +154,7 @@ impl AccountOpt {
println!("Webauthn removal success.");
}
Err(e) => {
eprintln!("Error Removing Webauthn from account -> {:?}", e);
error!("Error Removing Webauthn from account -> {:?}", e);
}
}
}
@ -165,7 +165,7 @@ impl AccountOpt {
) {
Ok(v) => v,
Err(e) => {
eprintln!("Error Starting Registration -> {:?}", e);
error!("Error Starting Registration -> {:?}", e);
return;
}
};
@ -176,7 +176,7 @@ impl AccountOpt {
let code = match QrCode::new(tok.to_uri().as_str()) {
Ok(c) => c,
Err(e) => {
eprintln!("Failed to generate QR code -> {:?}", e);
error!("Failed to generate QR code -> {:?}", e);
return;
}
};
@ -206,7 +206,7 @@ impl AccountOpt {
// Finish the line?
eprintln!();
if let Err(e) = input_result {
eprintln!("Failed to read from stdin -> {:?}", e);
error!("Failed to read from stdin -> {:?}", e);
break;
};
@ -214,7 +214,7 @@ impl AccountOpt {
let totp = match totp_input.trim().parse::<u32>() {
Ok(v) => v,
Err(e) => {
eprintln!("Invalid TOTP -> {:?}", e);
error!("Invalid TOTP -> {:?}", e);
// Try again.
continue;
}
@ -238,7 +238,7 @@ impl AccountOpt {
let mut confirm_input = String::new();
if let Err(e) = io::stdin().read_line(&mut confirm_input) {
eprintln!("Failed to read from stdin -> {:?}", e);
error!("Failed to read from stdin -> {:?}", e);
};
if confirm_input.to_lowercase().trim() == "i am sure" {
@ -250,7 +250,7 @@ impl AccountOpt {
println!("TOTP registration success.");
}
Err(e) => {
eprintln!("Error Completing -> {:?}", e);
error!("Error Completing -> {:?}", e);
}
};
} else {
@ -264,7 +264,7 @@ impl AccountOpt {
continue;
}
Err(e) => {
eprintln!("Error Completing -> {:?}", e);
error!("Error Completing -> {:?}", e);
break;
}
}
@ -279,7 +279,7 @@ impl AccountOpt {
println!("TOTP removal success.");
}
Err(e) => {
eprintln!("Error Removing TOTP from account -> {:?}", e);
error!("Error Removing TOTP from account -> {:?}", e);
}
}
}
@ -295,7 +295,7 @@ impl AccountOpt {
println!("---");
}
Err(e) => {
eprintln!("Error generating Backup Codes for account -> {:?}", e);
error!("Error generating Backup Codes for account -> {:?}", e);
}
}
}
@ -308,7 +308,7 @@ impl AccountOpt {
println!("BackupCodeRemove success.");
}
Err(e) => {
eprintln!("Error BackupCodeRemove for account -> {:?}", e);
error!("Error BackupCodeRemove for account -> {:?}", e);
}
}
}
@ -320,7 +320,7 @@ impl AccountOpt {
print!("{}", status);
}
Err(e) => {
eprintln!("Error displaying credential status -> {:?}", e);
error!("Error displaying credential status -> {:?}", e);
}
}
}
@ -336,7 +336,7 @@ impl AccountOpt {
Ok(Some(s)) => println!("Radius secret: {}", s),
Ok(None) => println!("NO Radius secret"),
Err(e) => {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
}
@ -345,7 +345,7 @@ impl AccountOpt {
if let Err(e) = client
.idm_account_radius_credential_regenerate(aopt.aopts.account_id.as_str())
{
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
AccountRadius::Delete(aopt) => {
@ -353,7 +353,7 @@ impl AccountOpt {
if let Err(e) =
client.idm_account_radius_credential_delete(aopt.aopts.account_id.as_str())
{
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
}, // end AccountOpt::Radius
@ -363,7 +363,7 @@ impl AccountOpt {
match client.idm_account_unix_token_get(aopt.aopts.account_id.as_str()) {
Ok(token) => println!("{}", token),
Err(e) => {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
}
@ -374,7 +374,7 @@ impl AccountOpt {
aopt.gidnumber,
aopt.shell.as_deref(),
) {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
AccountPosix::SetPassword(aopt) => {
@ -391,7 +391,7 @@ impl AccountOpt {
aopt.aopts.account_id.as_str(),
password.as_str(),
) {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
}, // end AccountOpt::Posix
@ -403,7 +403,7 @@ impl AccountOpt {
aopt.mail.as_deref(),
aopt.legalname.as_deref(),
) {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
}, // end AccountOpt::Person
@ -414,7 +414,7 @@ impl AccountOpt {
match client.idm_account_get_ssh_pubkeys(aopt.aopts.account_id.as_str()) {
Ok(pkeys) => pkeys.iter().for_each(|pkey| println!("{}", pkey)),
Err(e) => {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
}
@ -425,7 +425,7 @@ impl AccountOpt {
aopt.tag.as_str(),
aopt.pubkey.as_str(),
) {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
AccountSsh::Delete(aopt) => {
@ -434,7 +434,7 @@ impl AccountOpt {
aopt.aopts.account_id.as_str(),
aopt.tag.as_str(),
) {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
}, // end AccountOpt::Ssh
@ -442,7 +442,7 @@ impl AccountOpt {
let client = copt.to_client();
match client.idm_account_list() {
Ok(r) => r.iter().for_each(|ent| println!("{}", ent)),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
AccountOpt::Get(aopt) => {
@ -450,13 +450,13 @@ impl AccountOpt {
match client.idm_account_get(aopt.aopts.account_id.as_str()) {
Ok(Some(e)) => println!("{}", e),
Ok(None) => println!("No matching entries"),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
AccountOpt::Delete(aopt) => {
let client = aopt.copt.to_client();
if let Err(e) = client.idm_account_delete(aopt.aopts.account_id.as_str()) {
eprintln!("Error -> {:?}", e)
error!("Error -> {:?}", e)
}
}
AccountOpt::Create(acopt) => {
@ -465,7 +465,7 @@ impl AccountOpt {
acopt.aopts.account_id.as_str(),
acopt.display_name.as_str(),
) {
eprintln!("Error -> {:?}", e)
error!("Error -> {:?}", e)
}
}
AccountOpt::Validity(avopt) => match avopt {
@ -517,7 +517,7 @@ impl AccountOpt {
println!("expire: never");
}
}
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
AccountValidity::ExpireAt(ano) => {
@ -527,14 +527,14 @@ impl AccountOpt {
match client
.idm_account_purge_attr(ano.aopts.account_id.as_str(), "account_expire")
{
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
_ => println!("Success"),
}
} else {
if let Err(e) =
OffsetDateTime::parse(ano.datetime.as_str(), time::Format::Rfc3339)
{
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
return;
}
@ -543,7 +543,7 @@ impl AccountOpt {
"account_expire",
&[ano.datetime.as_str()],
) {
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
_ => println!("Success"),
}
}
@ -556,7 +556,7 @@ impl AccountOpt {
ano.aopts.account_id.as_str(),
"account_valid_from",
) {
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
_ => println!("Success"),
}
} else {
@ -564,7 +564,7 @@ impl AccountOpt {
if let Err(e) =
OffsetDateTime::parse(ano.datetime.as_str(), time::Format::Rfc3339)
{
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
return;
}
@ -573,7 +573,7 @@ impl AccountOpt {
"account_valid_from",
&[ano.datetime.as_str()],
) {
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
_ => println!("Success"),
}
}

View file

@ -87,7 +87,7 @@ impl CommonOpt {
match prompt_for_username_get_token() {
Ok(value) => value,
Err(msg) => {
eprintln!("{}", msg);
error!("{}", msg);
std::process::exit(1);
}
}
@ -98,7 +98,7 @@ impl CommonOpt {
let jwtu = match JwsUnverified::from_str(&token) {
Ok(jwtu) => jwtu,
Err(e) => {
eprintln!("Unable to parse token - {:?}", e);
error!("Unable to parse token - {:?}", e);
std::process::exit(1);
}
};
@ -139,7 +139,7 @@ pub fn prompt_for_username_get_values() -> Result<(String, String), String> {
_ => return Err("Error retrieving authentication token store".to_string()),
};
if tokens.is_empty() {
eprintln!("No tokens in store, quitting!");
error!("No tokens in store, quitting!");
std::process::exit(1);
}
let mut options = Vec::new();
@ -153,7 +153,7 @@ pub fn prompt_for_username_get_values() -> Result<(String, String), String> {
.interact();
let selection = match user_select {
Err(error) => {
eprintln!("Failed to handle user input: {:?}", error);
error!("Failed to handle user input: {:?}", error);
std::process::exit(1);
}
Ok(value) => value,
@ -168,7 +168,7 @@ pub fn prompt_for_username_get_values() -> Result<(String, String), String> {
Ok((f_uname.to_string(), f_token.to_string()))
}
None => {
eprintln!("Memory corruption trying to read token store, quitting!");
error!("Memory corruption trying to read token store, quitting!");
std::process::exit(1);
}
}

View file

@ -13,14 +13,14 @@ impl DomainOpt {
let client = copt.to_client();
match client.idm_domain_get() {
Ok(e) => println!("{}", e),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
DomainOpt::ResetTokenKey(copt) => {
let client = copt.to_client();
match client.idm_domain_reset_token_key() {
Ok(_) => println!("Success"),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
}

View file

@ -24,7 +24,7 @@ impl GroupOpt {
GroupOpt::List(copt) => {
let client = copt.to_client();
match client.idm_group_list() {
Ok(r) => r.iter().for_each(|ent| info!("{}", ent)),
Ok(r) => r.iter().for_each(|ent| println!("{}", ent)),
Err(e) => error!("Error -> {:?}", e),
}
}
@ -32,8 +32,8 @@ impl GroupOpt {
let client = gcopt.copt.to_client();
// idm_group_get
match client.idm_group_get(gcopt.name.as_str()) {
Ok(Some(e)) => info!("{}", e),
Ok(None) => info!("No matching group '{}'", gcopt.name.as_str()),
Ok(Some(e)) => println!("{}", e),
Ok(None) => warn!("No matching group '{}'", gcopt.name.as_str()),
Err(e) => error!("Error -> {:?}", e),
}
}
@ -41,21 +41,21 @@ impl GroupOpt {
let client = gcopt.copt.to_client();
match client.idm_group_create(gcopt.name.as_str()) {
Err(e) => error!("Error -> {:?}", e),
Ok(_) => info!("Successfully created group '{}'", gcopt.name.as_str()),
Ok(_) => println!("Successfully created group '{}'", gcopt.name.as_str()),
}
}
GroupOpt::Delete(gcopt) => {
let client = gcopt.copt.to_client();
match client.idm_group_delete(gcopt.name.as_str()) {
Err(e) => error!("Error -> {:?}", e),
Ok(_) => info!("Successfully deleted group {}", gcopt.name.as_str()),
Ok(_) => println!("Successfully deleted group {}", gcopt.name.as_str()),
}
}
GroupOpt::PurgeMembers(gcopt) => {
let client = gcopt.copt.to_client();
match client.idm_group_purge_members(gcopt.name.as_str()) {
Err(e) => error!("Error -> {:?}", e),
Ok(_) => info!(
Ok(_) => println!(
"Successfully purged members of group {}",
gcopt.name.as_str()
),
@ -64,8 +64,8 @@ impl GroupOpt {
GroupOpt::ListMembers(gcopt) => {
let client = gcopt.copt.to_client();
match client.idm_group_get_members(gcopt.name.as_str()) {
Ok(Some(groups)) => groups.iter().for_each(|m| info!("{:?}", m)),
Ok(None) => info!("No members in group {}", gcopt.name.as_str()),
Ok(Some(groups)) => groups.iter().for_each(|m| println!("{:?}", m)),
Ok(None) => warn!("No members in group {}", gcopt.name.as_str()),
Err(e) => error!("Error -> {:?}", e),
}
}
@ -75,7 +75,7 @@ impl GroupOpt {
match client.idm_group_add_members(gcopt.name.as_str(), &new_members) {
Err(e) => error!("Error -> {:?}", e),
Ok(_) => info!("Successfully added members to {}", gcopt.name.as_str()),
Ok(_) => warn!("Successfully added members to {}", gcopt.name.as_str()),
}
}
@ -85,7 +85,7 @@ impl GroupOpt {
match client.idm_group_remove_members(gcopt.name.as_str(), &remove_members) {
Err(e) => error!("Failed to remove members -> {:?}", e),
Ok(_) => info!("Successfully removed members from {}", gcopt.name.as_str()),
Ok(_) => println!("Successfully removed members from {}", gcopt.name.as_str()),
}
}
@ -95,14 +95,14 @@ impl GroupOpt {
match client.idm_group_set_members(gcopt.name.as_str(), &new_members) {
Err(e) => error!("Error -> {:?}", e),
Ok(_) => info!("Successfully set members for group {}", gcopt.name.as_str()),
Ok(_) => println!("Successfully set members for group {}", gcopt.name.as_str()),
}
}
GroupOpt::Posix(gpopt) => match gpopt {
GroupPosix::Show(gcopt) => {
let client = gcopt.copt.to_client();
match client.idm_group_unix_token_get(gcopt.name.as_str()) {
Ok(token) => info!("{}", token),
Ok(token) => println!("{}", token),
Err(e) => error!("Error -> {:?}", e),
}
}
@ -110,7 +110,7 @@ impl GroupOpt {
let client = gcopt.copt.to_client();
match client.idm_group_unix_extend(gcopt.name.as_str(), gcopt.gidnumber) {
Err(e) => error!("Error -> {:?}", e),
Ok(_) => info!(
Ok(_) => println!(
"Success adding POSIX configuration for group {}",
gcopt.name.as_str()
),

View file

@ -13,16 +13,33 @@
use kanidm_cli::KanidmClientOpt;
use structopt::StructOpt;
use tracing_subscriber::prelude::*;
use tracing_subscriber::{fmt, EnvFilter};
fn main() {
let opt = KanidmClientOpt::from_args();
if opt.debug() {
::std::env::set_var(
"RUST_LOG",
"kanidm=debug,kanidm_client=debug,webauthn=debug",
);
}
tracing_subscriber::fmt::init();
let fmt_layer = fmt::layer().with_writer(std::io::stderr);
let filter_layer = if opt.debug() {
match EnvFilter::try_new("kanidm=debug,kanidm_client=debug,webauthn=debug") {
Ok(f) => f,
Err(e) => {
eprintln!("ERROR! Unable to start tracing {:?}", e);
return;
}
}
} else {
match EnvFilter::try_from_default_env() {
Ok(f) => f,
Err(_) => EnvFilter::new("kanidm_client=warn"),
}
};
tracing_subscriber::registry()
.with(filter_layer)
.with(fmt_layer)
.init();
opt.exec()
}

View file

@ -24,7 +24,7 @@ impl Oauth2Opt {
let client = copt.to_client();
match client.idm_oauth2_rs_list() {
Ok(r) => r.iter().for_each(|ent| println!("{}", ent)),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
Oauth2Opt::Get(nopt) => {
@ -32,7 +32,7 @@ impl Oauth2Opt {
match client.idm_oauth2_rs_get(nopt.name.as_str()) {
Ok(Some(e)) => println!("{}", e),
Ok(None) => println!("No matching entries"),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
Oauth2Opt::CreateBasic(cbopt) => {
@ -43,7 +43,7 @@ impl Oauth2Opt {
cbopt.origin.as_str(),
) {
Ok(_) => println!("Success"),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
Oauth2Opt::SetImplictScopes(cbopt) => {
@ -59,7 +59,7 @@ impl Oauth2Opt {
false,
) {
Ok(_) => println!("Success"),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
Oauth2Opt::CreateScopeMap(cbopt) => {
@ -70,7 +70,7 @@ impl Oauth2Opt {
cbopt.scopes.iter().map(|s| s.as_str()).collect(),
) {
Ok(_) => println!("Success"),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
Oauth2Opt::DeleteScopeMap(cbopt) => {
@ -79,7 +79,7 @@ impl Oauth2Opt {
.idm_oauth2_rs_delete_scope_map(cbopt.nopt.name.as_str(), cbopt.group.as_str())
{
Ok(_) => println!("Success"),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
Oauth2Opt::ResetSecrets(cbopt) => {
@ -95,42 +95,42 @@ impl Oauth2Opt {
true,
) {
Ok(_) => println!("Success"),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
Oauth2Opt::Delete(nopt) => {
let client = nopt.copt.to_client();
match client.idm_oauth2_rs_delete(nopt.name.as_str()) {
Ok(_) => println!("Success"),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
Oauth2Opt::EnablePkce(nopt) => {
let client = nopt.copt.to_client();
match client.idm_oauth2_rs_enable_pkce(nopt.name.as_str()) {
Ok(_) => println!("Success"),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
Oauth2Opt::DisablePkce(nopt) => {
let client = nopt.copt.to_client();
match client.idm_oauth2_rs_disable_pkce(nopt.name.as_str()) {
Ok(_) => println!("Success"),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
Oauth2Opt::EnableLegacyCrypto(nopt) => {
let client = nopt.copt.to_client();
match client.idm_oauth2_rs_enable_legacy_crypto(nopt.name.as_str()) {
Ok(_) => println!("Success"),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
Oauth2Opt::DisableLegacyCrypto(nopt) => {
let client = nopt.copt.to_client();
match client.idm_oauth2_rs_disable_legacy_crypto(nopt.name.as_str()) {
Ok(_) => println!("Success"),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
}

View file

@ -34,14 +34,14 @@ impl RawOpt {
let filter: Filter = match serde_json::from_str(sopt.filter.as_str()) {
Ok(f) => f,
Err(e) => {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
return;
}
};
match client.search(filter) {
Ok(rset) => rset.iter().for_each(|e| println!("{}", e)),
Err(e) => eprintln!("Error -> {:?}", e),
Err(e) => error!("Error -> {:?}", e),
}
}
RawOpt::Create(copt) => {
@ -50,7 +50,7 @@ impl RawOpt {
let r_entries: Vec<BTreeMap<String, Vec<String>>> = match read_file(&copt.file) {
Ok(r) => r,
Err(e) => {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
return;
}
};
@ -58,7 +58,7 @@ impl RawOpt {
let entries = r_entries.into_iter().map(|b| Entry { attrs: b }).collect();
if let Err(e) = client.create(entries) {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
RawOpt::Modify(mopt) => {
@ -67,7 +67,7 @@ impl RawOpt {
let filter: Filter = match serde_json::from_str(mopt.filter.as_str()) {
Ok(f) => f,
Err(e) => {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
return;
}
};
@ -75,14 +75,14 @@ impl RawOpt {
let r_list: Vec<Modify> = match read_file(&mopt.file) {
Ok(r) => r,
Err(e) => {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
return;
}
};
let modlist = ModifyList::new_list(r_list);
if let Err(e) = client.modify(filter, modlist) {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
RawOpt::Delete(dopt) => {
@ -90,13 +90,13 @@ impl RawOpt {
let filter: Filter = match serde_json::from_str(dopt.filter.as_str()) {
Ok(f) => f,
Err(e) => {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
return;
}
};
if let Err(e) = client.delete(filter) {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
}

View file

@ -16,7 +16,7 @@ impl RecycleOpt {
match client.recycle_bin_list() {
Ok(r) => r.iter().for_each(|e| println!("{}", e)),
Err(e) => {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
}
@ -26,14 +26,14 @@ impl RecycleOpt {
Ok(Some(e)) => println!("{}", e),
Ok(None) => println!("No matching entries"),
Err(e) => {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
}
RecycleOpt::Revive(nopt) => {
let client = nopt.copt.to_client();
if let Err(e) = client.recycle_bin_revive(nopt.name.as_str()) {
eprintln!("Error -> {:?}", e);
error!("Error -> {:?}", e);
}
}
}

View file

@ -127,7 +127,7 @@ fn get_index_choice_dialoguer(msg: &str, options: &[String]) -> usize {
let selection = match user_select {
Err(error) => {
eprintln!("Failed to handle user input: {:?}", error);
error!("Failed to handle user input: {:?}", error);
std::process::exit(1);
}
Ok(value) => value,
@ -158,7 +158,7 @@ impl LoginOpt {
let mut backup_code = String::new();
loop {
if let Err(e) = io::stdin().read_line(&mut backup_code) {
eprintln!("Failed to read from stdin -> {:?}", e);
error!("Failed to read from stdin -> {:?}", e);
return Err(ClientError::SystemError);
};
if !backup_code.trim().is_empty() {
@ -173,11 +173,11 @@ impl LoginOpt {
print!("Enter TOTP: ");
// We flush stdout so it'll write the buffer to screen, continuing operation. Without it, the application halts.
if let Err(e) = io::stdout().flush() {
eprintln!("Somehow we failed to flush stdout: {:?}", e);
error!("Somehow we failed to flush stdout: {:?}", e);
};
let mut buffer = String::new();
if let Err(e) = io::stdin().read_line(&mut buffer) {
eprintln!("Failed to read from stdin -> {:?}", e);
error!("Failed to read from stdin -> {:?}", e);
return Err(ClientError::SystemError);
};
@ -360,7 +360,7 @@ impl LogoutOpt {
_tmp_username = match prompt_for_username_get_username() {
Ok(value) => value,
Err(msg) => {
eprintln!("{}", msg);
error!("{}", msg);
std::process::exit(1);
}
};
@ -379,9 +379,9 @@ impl LogoutOpt {
error!("Error persisting authentication token store");
std::process::exit(1);
};
info!("Removed session for {}", username);
println!("Removed session for {}", username);
} else {
info!("No sessions for {}", username);
println!("No sessions for {}", username);
}
}
}