Fix --data-dir being incorrectly resolved

This commit is contained in:
Joscha 2022-08-27 12:06:19 +02:00
parent 6150d05255
commit 8c1b207ac1

View file

@ -32,7 +32,6 @@ use clap::Parser;
use cookie::CookieJar; use cookie::CookieJar;
use directories::{BaseDirs, ProjectDirs}; use directories::{BaseDirs, ProjectDirs};
use log::info; use log::info;
use macros::some_or_return;
use toss::terminal::Terminal; use toss::terminal::Terminal;
use ui::Ui; use ui::Ui;
use vault::Vault; use vault::Vault;
@ -83,13 +82,17 @@ struct Args {
} }
fn set_data_dir(config: &mut Config, args_data_dir: Option<PathBuf>) { fn set_data_dir(config: &mut Config, args_data_dir: Option<PathBuf>) {
let data_dir = some_or_return!(args_data_dir); if let Some(data_dir) = args_data_dir {
let data_dir = if let Some(base_dirs) = BaseDirs::new() { // The data dir specified via args_data_dir is relative to the current
base_dirs.home_dir().join(data_dir) // directory and needs no resolving.
} else { config.data_dir = Some(data_dir);
data_dir } else if let Some(data_dir) = &config.data_dir {
}; // Resolve the data dir specified in the config file relative to the
config.data_dir = Some(data_dir); // user's home directory, if possible.
if let Some(base_dirs) = BaseDirs::new() {
config.data_dir = Some(base_dirs.home_dir().join(data_dir));
}
}
} }
fn set_ephemeral(config: &mut Config, args_ephemeral: bool) { fn set_ephemeral(config: &mut Config, args_ephemeral: bool) {