diff options
Diffstat (limited to 'src/configuration.rs')
| -rw-r--r-- | src/configuration.rs | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/src/configuration.rs b/src/configuration.rs index 65eb0ba..1c0e905 100644 --- a/src/configuration.rs +++ b/src/configuration.rs @@ -21,30 +21,25 @@ pub struct Configuration { // Derived directories: Output pub blog_output_directory: PathBuf, - pub archive_output_directory: PathBuf + pub archive_output_directory: PathBuf, } impl Configuration { - - pub fn new() -> Self { + pub fn new() -> Self { let config_directory = Configuration::directory( "BLOG_CONFIG_DIRECTORY", "XDG_CONFIG_HOME", ".config", - "blog" + "blog", ); let data_directory = Configuration::directory( "BLOG_DATA_DIRECTORY", "XDG_DATA_HOME", ".local/share", - "blog" - ); - let output_directory = Configuration::directory( - "BLOG_OUTPUT_DIRECTORY", - "XDG_CACHE_HOME", - ".cache", - "blog" + "blog", ); + let output_directory = + Configuration::directory("BLOG_OUTPUT_DIRECTORY", "XDG_CACHE_HOME", ".cache", "blog"); let max_posts: u8 = env::var("BLOG_MAX_POSTS") .ok() @@ -72,20 +67,29 @@ impl Configuration { static_directory, templates_directory, blog_output_directory, - archive_output_directory + archive_output_directory, } } - fn directory(user_override: &str, default_value: &str, home_fallback: &str, path: &str) -> PathBuf { + fn directory( + user_override: &str, + default_value: &str, + home_fallback: &str, + path: &str, + ) -> PathBuf { match env::var(user_override) { Ok(directory) => PathBuf::from(directory), Err(_) => match env::var(default_value) { Ok(directory) => PathBuf::from(directory), Err(_) => match env::var("HOME") { Ok(directory) => PathBuf::from(directory).join(home_fallback), - Err(_) => panic!("Could not find required directory, {} or {} should be set and readable.", user_override, default_value), + Err(_) => panic!( + "Could not find required directory, {} or {} should be set and readable.", + user_override, default_value + ), }, }, - }.join(path) + } + .join(path) } } |