diff options
| author | Stanisław Zagórowski <hasohasacz@gmail.com> | 2024-01-12 22:52:18 +0100 |
|---|---|---|
| committer | Stanisław Zagórowski <hasohasacz@gmail.com> | 2024-01-12 22:52:18 +0100 |
| commit | 14e2cc8846c844a234fb7688f84a874607dc96e9 (patch) | |
| tree | 4bcf1fdee1d85a971c8593a24bf06dfb4df752ea /src/server.rs | |
| parent | a56af29e6808ae4194f4a7fc5f7c906b146bb88e (diff) | |
add CLI tools
Diffstat (limited to 'src/server.rs')
| -rw-r--r-- | src/server.rs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/server.rs b/src/server.rs index 05f7f26..16b543e 100644 --- a/src/server.rs +++ b/src/server.rs @@ -26,11 +26,11 @@ pub struct Server { #[derive(Clone)] struct State { lua: Arc<Mutex<Lua>>, - public_dir: PathBuf, + public_dir: Option<PathBuf>, } impl Server { - pub async fn serve(lua: Lua, port: u16, public_dir: PathBuf) -> Result<()> { + pub async fn serve(lua: Lua, port: u16, public_dir: Option<PathBuf>) -> Result<()> { let state = State { lua: Arc::new(Mutex::new(lua)), public_dir, @@ -140,9 +140,13 @@ impl State { let status = StatusCode::from_u16(res.0 as u16).unwrap_or(StatusCode::INTERNAL_SERVER_ERROR); - if status == StatusCode::NOT_FOUND { + if status == StatusCode::NOT_FOUND && self.public_dir.is_some() { // try to serve a static file - let path = self.public_dir.join(path.trim_start_matches('/')); + let path = self + .public_dir + .clone() + .unwrap() + .join(path.trim_start_matches('/')); if path.is_file() { return mk_file_response(path); |
