diff options
| author | Fuwn <[email protected]> | 2022-04-25 01:12:12 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2022-04-25 01:12:12 -0700 |
| commit | ed6e5a3b1b73240ba21ec12cb9bfa5cf29b7881f (patch) | |
| tree | 16bead8ca5f3b59db93689ec39dc7d0aedf89faf /src | |
| parent | feat(quotes): add a quote (diff) | |
| download | locus-ed6e5a3b1b73240ba21ec12cb9bfa5cf29b7881f.tar.xz locus-ed6e5a3b1b73240ba21ec12cb9bfa5cf29b7881f.zip | |
refactor(modules): move static mounts to modules
Diffstat (limited to 'src')
| -rw-r--r-- | src/macros.rs | 13 | ||||
| -rw-r--r-- | src/main.rs | 39 | ||||
| -rw-r--r-- | src/modules/mod.rs | 1 | ||||
| -rw-r--r-- | src/modules/static.rs | 57 |
4 files changed, 66 insertions, 44 deletions
diff --git a/src/macros.rs b/src/macros.rs index 025e0dc..cd964bb 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -56,10 +56,11 @@ macro_rules! mount_page { ($router).mount( $at, Box::new(|context| { - let content = include_str!(concat!("../content/pages/", $file, ".gmi")); + let content = + include_str!(concat!("../../content/pages/", $file, ".gmi")); $crate::route::cache(&context, &content); - success!(content, context) + $crate::success!(content, context) }), ); }; @@ -74,8 +75,8 @@ macro_rules! mount_file { ($router).mount( $at, Box::new(|_| { - Response::SuccessFile(include_bytes!(concat!( - "../content/meta/", + windmark::Response::SuccessFile(include_bytes!(concat!( + "../../content/meta/", $file ))) }), @@ -87,12 +88,12 @@ macro_rules! mount_file { macro_rules! batch_mount { ("pages", $router:ident, $(($path:literal, $description:literal, $file:literal),)*) => { $( - mount_page!($router, $path, $description, $file); + $crate::mount_page!($router, $path, $description, $file); )* }; ("files", $router:ident, $(($path:literal, $description:literal, $file:literal),)*) => { $( - mount_file!($router, $path, $description, $file); + $crate::mount_file!($router, $path, $description, $file); )* }; } diff --git a/src/main.rs b/src/main.rs index 6ab7086..b3820d5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -152,44 +152,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { router.attach_stateless(modules::remarks::module); router.attach_stateless(modules::multi_blog::module); router.attach_stateless(modules::random::module); - }); - - time_mounts("static", &mut time_mount, || { - batch_mount!( - "files", - router, - ( - "/robots.txt", - "Crawler traffic manager, for robots, not humans", - "robots.txt" - ), - ("/favicon.txt", "This Gemini capsule's icon", "favicon.txt"), - ); - - batch_mount!( - "pages", - router, - ("/", "This Gemini capsule's homepage", "index"), - ("/contact", "Many ways to contact Fuwn", "contact"), - ("/donate", "Many ways to donate to Fuwn", "donate"), - ( - "/gemini", - "Information and resources for the Gemini protocol", - "gemini" - ), - ( - "/gopher", - "Information and resources for the Gopher protocol", - "gopher" - ), - ("/interests", "A few interests of Fuwn", "interests"), - ("/skills", "A few skills of Fuwn", "skills"), - ( - "/licensing", - "The licensing terms of this Gemini capsule", - "licensing" - ), - ); + router.attach_stateless(modules::r#static::module); }); std::thread::spawn(search::index); diff --git a/src/modules/mod.rs b/src/modules/mod.rs index bb822b3..fd856ff 100644 --- a/src/modules/mod.rs +++ b/src/modules/mod.rs @@ -21,4 +21,5 @@ pub mod random; pub mod remarks; pub mod search; pub mod sitemap; +pub mod r#static; pub mod uptime; diff --git a/src/modules/static.rs b/src/modules/static.rs new file mode 100644 index 0000000..07a7cb3 --- /dev/null +++ b/src/modules/static.rs @@ -0,0 +1,57 @@ +// This file is part of Locus <https://github.com/gemrest/locus>. +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// SPDX-License-Identifier: GPL-3.0-only + +use crate::batch_mount; + +pub fn module(router: &mut windmark::Router) { + batch_mount!( + "files", + router, + ( + "/robots.txt", + "Crawler traffic manager, for robots, not humans", + "robots.txt" + ), + ("/favicon.txt", "This Gemini capsule's icon", "favicon.txt"), + ); + + batch_mount!( + "pages", + router, + ("/", "This Gemini capsule's homepage", "index"), + ("/contact", "Many ways to contact Fuwn", "contact"), + ("/donate", "Many ways to donate to Fuwn", "donate"), + ( + "/gemini", + "Information and resources for the Gemini protocol", + "gemini" + ), + ( + "/gopher", + "Information and resources for the Gopher protocol", + "gopher" + ), + ("/interests", "A few interests of Fuwn", "interests"), + ("/skills", "A few skills of Fuwn", "skills"), + ( + "/licensing", + "The licensing terms of this Gemini capsule", + "licensing" + ), + ); +} |