Config: templates dir
This commit is contained in:
parent
fa306e9542
commit
81681303b2
3 changed files with 14 additions and 9 deletions
|
@ -60,6 +60,9 @@ pub struct Config {
|
|||
pub reverse_proxy: bool,
|
||||
#[serde(default = "Config::default_root_url")]
|
||||
pub root_url: String,
|
||||
/// Templates directory. May be absolute or relative to config/data directory.
|
||||
#[serde(default = "Config::default_templates_dir")]
|
||||
pub templates_dir: String,
|
||||
}
|
||||
|
||||
impl Config {
|
||||
|
@ -129,6 +132,9 @@ impl Config {
|
|||
fn default_root_url() -> String {
|
||||
"/".into()
|
||||
}
|
||||
fn default_templates_dir() -> String {
|
||||
"templates".into()
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for Config {
|
||||
|
@ -156,6 +162,7 @@ impl Default for Config {
|
|||
matrix_user: Self::default_matrix_user(),
|
||||
reverse_proxy: Self::default_reverse_proxy(),
|
||||
root_url: Self::default_root_url(),
|
||||
templates_dir: Self::default_templates_dir(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -50,11 +50,9 @@ fn init_all(
|
|||
subopt: cli::StartOpt,
|
||||
) -> (config::Config, db::Dbs, templates::Templates) {
|
||||
std::fs::create_dir_all(&opt.dir.0).expect("Cannot create dir");
|
||||
let config = config::read_config(&opt.dir.0);
|
||||
let dbs = db::load_dbs((!subopt.tmp).then_some(&opt.dir.0));
|
||||
let templates = templates::Templates::new(&opt.dir.0, &config);
|
||||
|
||||
(
|
||||
config::read_config(&opt.dir.0),
|
||||
dbs,
|
||||
templates::Templates::new(&opt.dir.0),
|
||||
)
|
||||
(config, dbs, templates)
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
use crate::db::*;
|
||||
use crate::{config::Config, db::*};
|
||||
|
||||
use serde::Serialize;
|
||||
use std::path::Path;
|
||||
|
@ -17,15 +17,15 @@ pub struct Templates {
|
|||
}
|
||||
|
||||
impl Templates {
|
||||
pub fn new(dir: &Path) -> Self {
|
||||
let dir = dir.join("templates");
|
||||
pub fn new(dir: &Path, config: &Config) -> Self {
|
||||
let dir = dir.join(&config.templates_dir);
|
||||
std::fs::create_dir_all(&dir).expect("Cannot create templates dir");
|
||||
|
||||
for &(file, default) in TEMPLATE_FILES {
|
||||
let file_path = dir.join(file);
|
||||
if !file_path.is_file() {
|
||||
std::fs::write(file_path, default)
|
||||
.unwrap_or_else(|_| panic!("Cannot write template file {}", file));
|
||||
.unwrap_or_else(|_| panic!("Cannot write template file {file}"));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue