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,
|
pub reverse_proxy: bool,
|
||||||
#[serde(default = "Config::default_root_url")]
|
#[serde(default = "Config::default_root_url")]
|
||||||
pub root_url: String,
|
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 {
|
impl Config {
|
||||||
|
@ -129,6 +132,9 @@ impl Config {
|
||||||
fn default_root_url() -> String {
|
fn default_root_url() -> String {
|
||||||
"/".into()
|
"/".into()
|
||||||
}
|
}
|
||||||
|
fn default_templates_dir() -> String {
|
||||||
|
"templates".into()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Config {
|
impl Default for Config {
|
||||||
|
@ -156,6 +162,7 @@ impl Default for Config {
|
||||||
matrix_user: Self::default_matrix_user(),
|
matrix_user: Self::default_matrix_user(),
|
||||||
reverse_proxy: Self::default_reverse_proxy(),
|
reverse_proxy: Self::default_reverse_proxy(),
|
||||||
root_url: Self::default_root_url(),
|
root_url: Self::default_root_url(),
|
||||||
|
templates_dir: Self::default_templates_dir(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,11 +50,9 @@ fn init_all(
|
||||||
subopt: cli::StartOpt,
|
subopt: cli::StartOpt,
|
||||||
) -> (config::Config, db::Dbs, templates::Templates) {
|
) -> (config::Config, db::Dbs, templates::Templates) {
|
||||||
std::fs::create_dir_all(&opt.dir.0).expect("Cannot create dir");
|
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 dbs = db::load_dbs((!subopt.tmp).then_some(&opt.dir.0));
|
||||||
|
let templates = templates::Templates::new(&opt.dir.0, &config);
|
||||||
|
|
||||||
(
|
(config, dbs, templates)
|
||||||
config::read_config(&opt.dir.0),
|
|
||||||
dbs,
|
|
||||||
templates::Templates::new(&opt.dir.0),
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use crate::db::*;
|
use crate::{config::Config, db::*};
|
||||||
|
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
@ -17,15 +17,15 @@ pub struct Templates {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Templates {
|
impl Templates {
|
||||||
pub fn new(dir: &Path) -> Self {
|
pub fn new(dir: &Path, config: &Config) -> Self {
|
||||||
let dir = dir.join("templates");
|
let dir = dir.join(&config.templates_dir);
|
||||||
std::fs::create_dir_all(&dir).expect("Cannot create templates dir");
|
std::fs::create_dir_all(&dir).expect("Cannot create templates dir");
|
||||||
|
|
||||||
for &(file, default) in TEMPLATE_FILES {
|
for &(file, default) in TEMPLATE_FILES {
|
||||||
let file_path = dir.join(file);
|
let file_path = dir.join(file);
|
||||||
if !file_path.is_file() {
|
if !file_path.is_file() {
|
||||||
std::fs::write(file_path, default)
|
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