diff --git a/Cargo.lock b/Cargo.lock index 9ccfcda..0ba35ef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -860,6 +860,7 @@ dependencies = [ "clap", "futures", "openssl", + "paris", "tokio", ] @@ -1063,6 +1064,12 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "paris" +version = "1.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fecab3723493c7851f292cb060f3ee1c42f19b8d749345d0d7eaf3fd19aa62d" + [[package]] name = "parking" version = "2.2.0" diff --git a/Cargo.toml b/Cargo.toml index b620648..567b504 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,7 @@ azure_identity = "0.17.0" azure_security_keyvault = "0.17.0" clap = { version = "4.4.8", features = ["derive"] } futures = "0.3.29" +paris = { version = "1.5.15", features = ["macros"] } tokio = {version = "1.34.0", features = ["full"]} [target.'cfg(all(target_os = "linux", any(target_env = "musl", target_arch = "arm", target_arch = "aarch64")))'.dependencies] diff --git a/src/main.rs b/src/main.rs index 55c3a1d..8a8494a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,6 +9,8 @@ use std::io::Write; use std::sync::Arc; use tokio::sync::mpsc; use tokio::sync::Semaphore; +use paris::Logger; +// use paris::error; #[derive(Parser, Debug)] #[clap(author, version, about, long_about = None)] @@ -147,18 +149,24 @@ mod tests { #[tokio::main] async fn main() -> Result<()> { let opts: Opts = Opts::parse(); + let mut log = Logger::new(); let vault_url = format!("https://{}.vault.azure.net", opts.vault_name); - println!("Fetching secrets from Key Vault: {}", opts.vault_name); + log.loading("Detecting credentials."); let credential = DefaultAzureCredential::default(); let client = KeyvaultClient::new(&vault_url, std::sync::Arc::new(credential)) .context("Failed to create KeyvaultClient")?; + log.success("Detected credentials."); + log.loading(format!("Fetching secrets from Key Vault: {}", opts.vault_name)); let secrets = fetch_secrets_from_key_vault(&client, opts.filter.as_deref()).await?; - println!("Creating output file: {}", opts.output); + log.success(format!("Fetched secrets from Key Vault: {}", opts.vault_name)); + + log.loading(format!("Creating output file: {}", opts.output)); create_env_file(secrets, &opts.output)?; + log.success(format!("Created output file: {}", opts.output)); - println!("Process completed successfully!"); + log.success("Done."); Ok(()) }