From fa05d52aacf1fabd289b1b594490a0e5c817db46 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 26 Aug 2020 23:31:30 +0100 Subject: [PATCH] template_dir from config --- server.toml | 1 + src/bin/server.rs | 5 +++-- src/global.rs | 10 ++++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) 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 } } } -- 2.30.2