refactor: Migrate the vault/bare_init logic

This commit is contained in:
2026-04-19 18:00:14 -06:00
parent f1914f6bd4
commit 0e427dc4ba
4 changed files with 208 additions and 21 deletions
+1 -11
View File
@@ -356,7 +356,7 @@ impl Config {
};
let setup = async |config: &mut Self| -> Result<()> {
let vault = Vault::init(config);
let vault = Vault::init(&config.to_app_config());
let (parsed_config, missing_secrets) = interpolate_secrets(&content, &vault);
if !missing_secrets.is_empty() && !info_flag {
@@ -411,16 +411,6 @@ impl Config {
Ok(config)
}
pub fn vault_password_file(&self) -> PathBuf {
match &self.vault_password_file {
Some(path) => match path.exists() {
true => path.clone(),
false => gman::config::Config::local_provider_password_file(),
},
None => gman::config::Config::local_provider_password_file(),
}
}
pub fn sessions_dir(&self) -> PathBuf {
match &self.agent {
None => match env::var(get_env_name("sessions_dir")) {
+2 -1
View File
@@ -92,7 +92,8 @@ async fn main() -> Result<()> {
}
if vault_flags {
return Vault::handle_vault_flags(cli, Config::init_bare()?);
let cfg = Config::init_bare()?;
return Vault::handle_vault_flags(cli, &cfg.vault);
}
let abort_signal = create_abort_signal();
+9 -9
View File
@@ -5,7 +5,7 @@ pub use utils::create_vault_password_file;
pub use utils::interpolate_secrets;
use crate::cli::Cli;
use crate::config::Config;
use crate::config::AppConfig;
use crate::vault::utils::ensure_password_file_initialized;
use anyhow::{Context, Result};
use fancy_regex::Regex;
@@ -26,7 +26,7 @@ pub type GlobalVault = Arc<Vault>;
impl Vault {
pub fn init_bare() -> Self {
let vault_password_file = Config::default().vault_password_file();
let vault_password_file = AppConfig::default().vault_password_file();
let local_provider = LocalProvider {
password_file: Some(vault_password_file),
git_branch: None,
@@ -36,7 +36,7 @@ impl Vault {
Self { local_provider }
}
pub fn init(config: &Config) -> Self {
pub fn init(config: &AppConfig) -> Self {
let vault_password_file = config.vault_password_file();
let mut local_provider = LocalProvider {
password_file: Some(vault_password_file),
@@ -130,25 +130,25 @@ impl Vault {
Ok(secrets)
}
pub fn handle_vault_flags(cli: Cli, config: Config) -> Result<()> {
pub fn handle_vault_flags(cli: Cli, vault: &Vault) -> Result<()> {
if let Some(secret_name) = cli.add_secret {
config.vault.add_secret(&secret_name)?;
vault.add_secret(&secret_name)?;
}
if let Some(secret_name) = cli.get_secret {
config.vault.get_secret(&secret_name, true)?;
vault.get_secret(&secret_name, true)?;
}
if let Some(secret_name) = cli.update_secret {
config.vault.update_secret(&secret_name)?;
vault.update_secret(&secret_name)?;
}
if let Some(secret_name) = cli.delete_secret {
config.vault.delete_secret(&secret_name)?;
vault.delete_secret(&secret_name)?;
}
if cli.list_secrets {
config.vault.list_secrets(true)?;
vault.list_secrets(true)?;
}
Ok(())