X-Git-Url: https://git.r.bdr.sh/rbdr/lyricli/blobdiff_plain/040b91a7a5b085f8aa0bec3580bf7d68450e6fc9..39ff8a112e043bd79220df71a74cf0549d75e06a:/src/configuration.rs?ds=sidebyside diff --git a/src/configuration.rs b/src/configuration.rs index 55443eb..8d79eba 100644 --- a/src/configuration.rs +++ b/src/configuration.rs @@ -1,9 +1,9 @@ +use serde::{Deserialize, Serialize}; +use serde_json::{from_str, to_string}; use std::env; use std::fs::{create_dir_all, write, File}; use std::io::{Read, Result}; use std::path::PathBuf; -use serde::{Deserialize, Serialize}; -use serde_json; const CONFIG_ENV_VARIABLE: &str = "LYRICLI_CONFIG_DIRECTORY"; const CONFIG_DEFAULT_LOCATION: &str = "XDG_CONFIG_HOME"; @@ -13,13 +13,11 @@ const CONFIG_FILENAME: &str = "lyricli.conf"; #[derive(Serialize, Deserialize, Debug)] pub struct Configuration { - enabled_sources: Vec + enabled_sources: Vec, } impl Configuration { - - pub fn new() -> Self { - + pub fn new() -> Self { if let Some(configuration) = Configuration::read() { return configuration; } @@ -56,8 +54,8 @@ impl Configuration { enabled_sources: vec![ "apple_music".to_string(), "spotify".to_string(), - "strawberry".to_string() - ] + "strawberry".to_string(), + ], } } @@ -67,12 +65,12 @@ impl Configuration { let mut config_file = File::open(&config_file_path).ok()?; let mut config_contents = String::new(); config_file.read_to_string(&mut config_contents).ok()?; - serde_json::from_str(&config_contents).ok()? + from_str(&config_contents).ok()? } fn write(configuration: &Configuration) -> Result<()> { let config_file_path = Configuration::file_path(); - if let Ok(serialized_configuration) = serde_json::to_string(&configuration) { + if let Ok(serialized_configuration) = to_string(&configuration) { write(&config_file_path, serialized_configuration)?; } Ok(()) @@ -91,9 +89,13 @@ impl Configuration { Ok(directory) => PathBuf::from(directory), Err(_) => match env::var("HOME") { Ok(directory) => PathBuf::from(directory).join(CONFIG_FALLBACK_LOCATION), - Err(_) => panic!("Could not find required directory, {} or {} should be set and readable.", CONFIG_ENV_VARIABLE, CONFIG_DEFAULT_LOCATION), + Err(_) => panic!( + "Could not find required directory, {} or {} should be set and readable.", + CONFIG_ENV_VARIABLE, CONFIG_DEFAULT_LOCATION + ), }, }, - }.join(CONFIG_SUBDIRECTORY) + } + .join(CONFIG_SUBDIRECTORY) } }