diff options
author | Cara Salter <cara@devcara.com> | 2021-12-19 12:48:36 -0500 |
---|---|---|
committer | Cara Salter <cara@devcara.com> | 2021-12-19 12:48:36 -0500 |
commit | c4d7f8f50d53057005d6bb28ac487f69ea45bd5e (patch) | |
tree | 34968e205ebbb97264a2df4e8951af5a01db22cb /src/main.rs | |
parent | ef01d3badb9765271a5bf55a4f0702b68f099e2e (diff) | |
download | site-c4d7f8f50d53057005d6bb28ac487f69ea45bd5e.tar.gz site-c4d7f8f50d53057005d6bb28ac487f69ea45bd5e.zip |
Add blog post parsing and templates
templates WIP, not building properly
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs index 8e92b51..04ab18e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,20 +1,31 @@ +#[macro_use] +extern crate tracing; + use color_eyre::eyre::Result; -use std::net::IpAddr; +use std::{net::IpAddr, sync::Arc}; use warp::Filter; use std::str::FromStr; pub mod blog; +mod internal; + +use internal::SiteState; #[tokio::main] async fn main() -> Result<()> { color_eyre::install()?; + tracing_subscriber::fmt::init(); + info!("Starting launch of {}", env!("GIT_SHA")); + // Load .env kankyo::init(); + let state = Arc::new(internal::init().await?); + let blog_base = warp::path!("blog" / ..); - let blog_list = blog_base.and_then(blog::handlers::list); + let blog_list = blog_base.and(give_site_state(state.clone())).and_then(blog::handlers::list); let blog_post = blog_base.and( warp::path!(String) .and(warp::get()).and_then(blog::handlers::post)); @@ -36,3 +47,7 @@ async fn main() -> Result<()> { Ok(()) } + +fn give_site_state(sitestate: Arc<SiteState>) -> impl Filter<Extract = (Arc<SiteState>,), Error=std::convert::Infallible> + Clone { + warp::any().map(move || sitestate.clone()) +} |