aboutsummaryrefslogtreecommitdiff
path: root/src/configuration.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/configuration.rs')
-rw-r--r--src/configuration.rs34
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)
}
}