summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorCara Salter <cara@devcara.com>2021-12-19 12:48:36 -0500
committerCara Salter <cara@devcara.com>2021-12-19 12:48:36 -0500
commitc4d7f8f50d53057005d6bb28ac487f69ea45bd5e (patch)
tree34968e205ebbb97264a2df4e8951af5a01db22cb /src/main.rs
parentef01d3badb9765271a5bf55a4f0702b68f099e2e (diff)
downloadsite-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.rs19
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())
+}