create tmp cache directory if one is not specified
This commit is contained in:
parent
96a08fcb3f
commit
b7e3f7348c
3 changed files with 18 additions and 6 deletions
|
@ -1,6 +1,6 @@
|
||||||
debug = true
|
debug = true
|
||||||
source_code = "https://github.com/realaravinth/libmedium"
|
source_code = "https://github.com/realaravinth/libmedium"
|
||||||
cache = "/var/lib/libmedium"
|
#cache = "/var/lib/libmedium"
|
||||||
|
|
||||||
[server]
|
[server]
|
||||||
# The port at which you want authentication to listen to
|
# The port at which you want authentication to listen to
|
||||||
|
|
|
@ -44,7 +44,7 @@ pub type AppData = web::Data<Data>;
|
||||||
|
|
||||||
impl Data {
|
impl Data {
|
||||||
pub fn new() -> AppData {
|
pub fn new() -> AppData {
|
||||||
let path = Path::new(&SETTINGS.cache).join("posts_cache");
|
let path = Path::new(SETTINGS.cache.as_ref().unwrap()).join("posts_cache");
|
||||||
let cache = sled::open(path).unwrap();
|
let cache = sled::open(path).unwrap();
|
||||||
let posts = cache.open_tree("posts").unwrap();
|
let posts = cache.open_tree("posts").unwrap();
|
||||||
AppData::new(Self {
|
AppData::new(Self {
|
||||||
|
|
|
@ -42,7 +42,7 @@ impl Server {
|
||||||
#[derive(Debug, Clone, Deserialize)]
|
#[derive(Debug, Clone, Deserialize)]
|
||||||
pub struct Settings {
|
pub struct Settings {
|
||||||
pub debug: bool,
|
pub debug: bool,
|
||||||
pub cache: String,
|
pub cache: Option<String>,
|
||||||
pub server: Server,
|
pub server: Server,
|
||||||
pub source_code: String,
|
pub source_code: String,
|
||||||
}
|
}
|
||||||
|
@ -82,14 +82,26 @@ impl Settings {
|
||||||
Err(e) => warn!("couldn't interpret PORT: {}", e),
|
Err(e) => warn!("couldn't interpret PORT: {}", e),
|
||||||
}
|
}
|
||||||
|
|
||||||
let settings: Settings = s.try_into()?;
|
let mut settings: Settings = s.try_into()?;
|
||||||
|
|
||||||
let cache_path = Path::new(&settings.cache);
|
if settings.cache.is_none() {
|
||||||
|
let tmp = env::temp_dir().join("libmedium_cache_path");
|
||||||
|
if !tmp.exists() {
|
||||||
|
fs::create_dir_all(&tmp).unwrap()
|
||||||
|
}
|
||||||
|
settings.cache = Some(tmp.to_str().unwrap().to_string())
|
||||||
|
}
|
||||||
|
|
||||||
|
let cache_path = settings.cache.as_ref().unwrap();
|
||||||
|
let cache_path = Path::new(&cache_path);
|
||||||
if !cache_path.exists() {
|
if !cache_path.exists() {
|
||||||
fs::create_dir(&cache_path).unwrap();
|
fs::create_dir(&cache_path).unwrap();
|
||||||
}
|
}
|
||||||
if !cache_path.is_dir() {
|
if !cache_path.is_dir() {
|
||||||
panic!("Cache path {} must be a directory", &settings.cache);
|
panic!(
|
||||||
|
"Cache path {} must be a directory",
|
||||||
|
&settings.cache.as_ref().unwrap()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
Ok(settings)
|
Ok(settings)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue