diff --git a/aws-creds/src/credentials.rs b/aws-creds/src/credentials.rs index 6b8d67994b..710444ff93 100644 --- a/aws-creds/src/credentials.rs +++ b/aws-creds/src/credentials.rs @@ -407,10 +407,8 @@ impl Credentials { }) } - pub fn from_profile(section: Option<&str>) -> Result { - let home_dir = home::home_dir().ok_or(CredentialsError::HomeDir)?; - let profile = format!("{}/.aws/credentials", home_dir.display()); - let conf = Ini::load_from_file(profile)?; + pub fn from_credentials_file(file: &str, section: Option<&str>) -> Result { + let conf = Ini::load_from_file(file)?; let section = section.unwrap_or("default"); let data = conf .section(Some(section)) @@ -432,6 +430,12 @@ impl Credentials { }; Ok(credentials) } + + pub fn from_profile(section: Option<&str>) -> Result { + let home_dir = home::home_dir().ok_or(CredentialsError::HomeDir)?; + let profile = format!("{}/.aws/credentials", home_dir.display()); + Credentials::from_credentials_file(&profile, section) + } } fn from_env_with_default(var: Option<&str>, default: &str) -> Result {