From: Ian Jackson Date: Wed, 26 Aug 2020 22:31:30 +0000 (+0100) Subject: template_dir from config X-Git-Tag: otter-0.2.0~1045 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=fa05d52aacf1fabd289b1b594490a0e5c817db46;p=otter.git template_dir from config --- diff --git a/server.toml b/server.toml index 9c1d48b2..2d6ac173 100644 --- a/server.toml +++ b/server.toml @@ -2,3 +2,4 @@ # target/debug/server ~ian/Rustup/Game/server/server.toml save_directory = "/home/ian/Rustup/Game/server/save" +template_dir = "/home/ian/Rustup/Game/server/templates" diff --git a/src/bin/server.rs b/src/bin/server.rs index 04bfb6ae..46a19f89 100644 --- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -62,8 +62,7 @@ fn updates(ctoken : InstanceAccess, gen: u64) #[get("/_/")] fn resource(leaf : CheckedResourceLeaf) -> io::Result { - let template_dir = "templates"; - NamedFile::open(format!("{}/{}", template_dir, leaf.safe)) + NamedFile::open(format!("{}/{}", config().template_dir, leaf.safe)) } #[throws(StartupError)] @@ -101,6 +100,8 @@ fn main() { if let Some(port) = c.http_port { cbuilder = cbuilder.port(port); } + cbuilder.extras.insert("template_dir".to_owned(), + c.template_dir.clone().into()); let rconfig = cbuilder.finalize()?; let r = rocket::custom(rconfig) diff --git a/src/global.rs b/src/global.rs index 4f6dd640..5501b3cc 100644 --- a/src/global.rs +++ b/src/global.rs @@ -924,6 +924,7 @@ const DEFAULT_CONFIG_FILENAME : &str = "server.toml"; const DEFAULT_SAVE_DIRECTORY : &str = "save"; const DEFAULT_COMMAND_SOCKET : &str = "command.socket"; // in save dir +const DEFAULT_TEMPLATE_DIR : &str = "templates"; #[derive(Deserialize,Debug,Clone)] pub struct ServerConfigSpec { @@ -932,6 +933,7 @@ pub struct ServerConfigSpec { pub debug: Option, pub http_port: Option, pub rocket_workers: Option, + pub template_dir: Option, } #[derive(Debug,Clone)] @@ -941,6 +943,7 @@ pub struct ServerConfig { pub debug: bool, pub http_port: Option, pub rocket_workers: u16, + pub template_dir: String, } impl TryFrom for ServerConfig { @@ -949,7 +952,7 @@ impl TryFrom for ServerConfig { fn try_from(spec: ServerConfigSpec) -> ServerConfig { let ServerConfigSpec { save_directory, command_socket, debug, - http_port, rocket_workers, + http_port, rocket_workers, template_dir } = spec; let save_directory = save_directory @@ -965,9 +968,12 @@ impl TryFrom for ServerConfig { let rocket_workers = rocket_workers.unwrap_or( if debug { 20 } else { 1000 }); + let template_dir = template_dir + .unwrap_or_else(|| DEFAULT_TEMPLATE_DIR.to_owned()); + ServerConfig { save_directory, command_socket, debug, - http_port, rocket_workers, + http_port, rocket_workers, template_dir } } }