Create the local dir in the local_project_file
function
Co-authored-by: Amjad Alsharafi <26300843+Amjad50@users.noreply.github.com>
This commit is contained in:
parent
acb0faac93
commit
abdcbdf6dc
1 changed files with 7 additions and 6 deletions
13
src/utils.rs
13
src/utils.rs
|
@ -20,19 +20,20 @@ use crate::{LprsError, LprsResult};
|
||||||
|
|
||||||
/// Returns the local project dir joined with the given file name
|
/// Returns the local project dir joined with the given file name
|
||||||
pub fn local_project_file(filename: &str) -> LprsResult<PathBuf> {
|
pub fn local_project_file(filename: &str) -> LprsResult<PathBuf> {
|
||||||
directories::ProjectDirs::from("", "", "lprs")
|
let local_dir = directories::ProjectDirs::from("", "", "lprs")
|
||||||
.map(|d| d.data_local_dir().to_path_buf().join(filename))
|
.map(|d| d.data_local_dir().to_path_buf())
|
||||||
.ok_or_else(|| {
|
.ok_or_else(|| {
|
||||||
LprsError::ProjectDir("Can't extract the project_dir from this OS".to_owned())
|
LprsError::ProjectDir("Can't extract the project_dir from this OS".to_owned())
|
||||||
})
|
})?;
|
||||||
|
if !local_dir.exists() {
|
||||||
|
fs::create_dir_all(&local_dir)?;
|
||||||
|
}
|
||||||
|
Ok(local_dir.join(filename))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the default passwords json file
|
/// Returns the default passwords json file
|
||||||
pub fn passwords_file() -> LprsResult<PathBuf> {
|
pub fn passwords_file() -> LprsResult<PathBuf> {
|
||||||
let password_file = local_project_file(crate::DEFAULT_PASSWORD_FILE)?;
|
let password_file = local_project_file(crate::DEFAULT_PASSWORD_FILE)?;
|
||||||
if let Some(parent) = password_file.parent() {
|
|
||||||
std::fs::create_dir_all(parent)?;
|
|
||||||
}
|
|
||||||
if !password_file.exists() {
|
if !password_file.exists() {
|
||||||
fs::write(&password_file, "[]")?;
|
fs::write(&password_file, "[]")?;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue