Skip to main content

envvault/cli/commands/
list.rs

1//! `envvault list` — display all secrets in a table.
2
3use crate::cli::output;
4use crate::cli::{load_keyfile, prompt_password_for_vault, vault_path, Cli};
5use crate::errors::Result;
6use crate::vault::VaultStore;
7
8/// Execute the `list` command.
9pub fn execute(cli: &Cli) -> Result<()> {
10    let path = vault_path(cli)?;
11    let keyfile = load_keyfile(cli)?;
12
13    let vault_id = path.to_string_lossy();
14    let password = prompt_password_for_vault(Some(&vault_id))?;
15    let store = VaultStore::open(&path, password.as_bytes(), keyfile.as_deref())?;
16
17    let secrets = store.list_secrets();
18
19    output::info(&format!(
20        "{} environment — {} secret(s)",
21        cli.env,
22        secrets.len()
23    ));
24
25    output::print_secrets_table(&secrets);
26
27    Ok(())
28}