1use crate::constants;
2use anyhow::Result;
3use directories::UserDirs;
4use std::fs;
5use std::path::{Path, PathBuf};
6
7pub fn get_home_dir() -> PathBuf {
8 let user_dirs = UserDirs::new().expect("Could not resolve user $HOME dir.");
9 let home_dir = user_dirs.home_dir();
10 home_dir.to_path_buf()
11}
12
13pub fn get_config_dir(home_dir: &Path) -> Result<PathBuf> {
14 let config_dir = home_dir.join(constants::AWS_SDK_DEFAULT_CONFIG_PREFIX);
15 if !config_dir.exists() {
16 fs::create_dir_all(&config_dir)?;
17 }
18 Ok(config_dir)
19}
20
21pub fn get_credentials_dir(home_dir: &Path) -> Result<PathBuf> {
22 let credentials_dir = home_dir.join(constants::AWS_SDK_DEFAULT_CREDENTIALS_PREFIX);
23 if !credentials_dir.exists() {
24 fs::create_dir_all(&credentials_dir)?;
25 }
26 Ok(credentials_dir)
27}