read cache path from config file
This commit is contained in:
parent
af3c43dbf5
commit
817c997d4a
3 changed files with 16 additions and 2 deletions
|
@ -1,5 +1,6 @@
|
|||
debug = true
|
||||
source_code = "https://github.com/realaravinth/libmedium"
|
||||
cache = "/var/lib/libmedium"
|
||||
|
||||
[server]
|
||||
# The port at which you want authentication to listen to
|
||||
|
|
|
@ -14,11 +14,15 @@
|
|||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
use std::path::Path;
|
||||
|
||||
use actix_web::web;
|
||||
use graphql_client::{reqwest::post_graphql, GraphQLQuery};
|
||||
use reqwest::Client;
|
||||
use sled::{Db, Tree};
|
||||
|
||||
use crate::SETTINGS;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct Data {
|
||||
pub client: Client,
|
||||
|
@ -40,7 +44,8 @@ pub type AppData = web::Data<Data>;
|
|||
|
||||
impl Data {
|
||||
pub fn new() -> AppData {
|
||||
let cache = sled::open("posts_cache").unwrap();
|
||||
let path = Path::new(&SETTINGS.cache).join("posts_cache");
|
||||
let cache = sled::open(path).unwrap();
|
||||
let posts = cache.open_tree("posts").unwrap();
|
||||
AppData::new(Self {
|
||||
client: Client::new(),
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
use std::env;
|
||||
use std::fs;
|
||||
use std::path::Path;
|
||||
|
||||
use config::{Config, ConfigError, Environment, File};
|
||||
|
@ -41,7 +42,7 @@ impl Server {
|
|||
#[derive(Debug, Clone, Deserialize)]
|
||||
pub struct Settings {
|
||||
pub debug: bool,
|
||||
// pub database: Database,
|
||||
pub cache: String,
|
||||
pub server: Server,
|
||||
pub source_code: String,
|
||||
}
|
||||
|
@ -83,6 +84,13 @@ impl Settings {
|
|||
|
||||
let settings: Settings = s.try_into()?;
|
||||
|
||||
let cache_path = Path::new(&settings.cache);
|
||||
if !cache_path.exists() {
|
||||
fs::create_dir(&cache_path).unwrap();
|
||||
}
|
||||
if !cache_path.is_dir() {
|
||||
panic!("Cache path {} must be a directory", &settings.cache);
|
||||
}
|
||||
Ok(settings)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue