refact(main): extract load_default_config

This commit is contained in:
steven-omaha
2023-05-08 15:38:46 +02:00
parent 12c9a743ff
commit faa6b1451d
+13 -8
View File
@@ -15,6 +15,7 @@ Main program for `pacdef`. All internal logic happens in [`pacdef_core`].
missing_docs
)]
use std::path::Path;
use std::process::{ExitCode, Termination};
use anyhow::{Context, Result};
@@ -49,14 +50,7 @@ fn main_inner() -> Result<()> {
let config_file = get_config_path().context("getting config file")?;
let config = Config::load(&config_file)
.or_else(|_| {
get_config_path_old_version()?
.exists()
.then(show_transition_link);
let default = Config::default();
default.save(&config_file)?;
Ok::<Config, anyhow::Error>(default)
})
.or_else(|_| load_default_config(&config_file))
.context("loading config")?;
let group_dir = get_group_dir().context("resolving group dir")?;
@@ -67,6 +61,17 @@ fn main_inner() -> Result<()> {
pacdef.run_action_from_arg().context("running action")
}
fn load_default_config(config_file: &Path) -> Result<Config> {
if get_config_path_old_version()?.exists() {
show_transition_link();
}
let default = Config::default();
default.save(config_file)?;
Ok(default)
}
fn show_transition_link() {
println!("VERSION UPGRADE");
println!("You seem to have used version 0.x of pacdef before.");