feat(config): Add --first-run flag
Add flag to run the first run wizard again, even if config already exists.
This commit is contained in:
parent
b7a47519b5
commit
d09c1d60f9
|
@ -1,6 +1,6 @@
|
|||
use std::{fs, error::Error, path::PathBuf, io::ErrorKind, str::FromStr};
|
||||
use inquire::{Text, CustomUserError, Autocomplete, autocompletion::Replacement};
|
||||
use log::warn;
|
||||
use log::{warn, info, error};
|
||||
use serde::{Serialize, Deserialize};
|
||||
|
||||
#[derive(Clone, Serialize, Deserialize, Debug)]
|
||||
|
@ -9,18 +9,26 @@ pub struct Config {
|
|||
pub plex_library: PathBuf,
|
||||
}
|
||||
|
||||
pub fn load(path: &PathBuf) -> Result<Config, Box<dyn Error>> {
|
||||
pub fn load(path: &PathBuf, first: bool) -> Result<Config, Box<dyn Error>> {
|
||||
if first {
|
||||
info!("Running first run wizard...");
|
||||
let cfg = first_run()?;
|
||||
save(cfg.clone(), path)?;
|
||||
return Ok(cfg);
|
||||
}
|
||||
|
||||
let f = fs::read_to_string(path);
|
||||
let f = match f {
|
||||
Ok(file) => file,
|
||||
Err(e) => {
|
||||
if e.kind() == ErrorKind::NotFound {
|
||||
warn!("Config not found, assuming first run!");
|
||||
warn!("Config not found, running first run wizard...");
|
||||
let cfg = first_run()?;
|
||||
save(cfg.clone(), path)?;
|
||||
return Ok(cfg);
|
||||
} else {
|
||||
panic!("There was an error reading the config file!");
|
||||
error!("There was an error reading the config file!");
|
||||
return Err(Box::new(e));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -51,7 +51,7 @@ fn main() {
|
|||
|
||||
info!("Loading config from \"{}\"", config_path.to_str().unwrap());
|
||||
|
||||
let cfg = config::load(&config_path).unwrap();
|
||||
let cfg = config::load(&config_path, args.first_run).unwrap();
|
||||
|
||||
info!("Found config: {:#?}", cfg);
|
||||
|
||||
|
|
Loading…
Reference in a new issue