diff options
author | Cara Salter <cara@devcara.com> | 2021-12-17 19:57:03 -0500 |
---|---|---|
committer | Cara Salter <cara@devcara.com> | 2021-12-17 19:57:03 -0500 |
commit | ef01d3badb9765271a5bf55a4f0702b68f099e2e (patch) | |
tree | 19cfe6d0409418dcaa9bd15635cd71d003f74a4d /src/main.rs | |
download | site-ef01d3badb9765271a5bf55a4f0702b68f099e2e.tar.gz site-ef01d3badb9765271a5bf55a4f0702b68f099e2e.zip |
Initial commit [WIP]
Some routing exists. Still needs templating etc
Signed-off-by: Cara Salter <cara@devcara.com>
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..8e92b51 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,38 @@ +use color_eyre::eyre::Result; +use std::net::IpAddr; +use warp::Filter; + +use std::str::FromStr; + +pub mod blog; + +#[tokio::main] +async fn main() -> Result<()> { + color_eyre::install()?; + + // Load .env + kankyo::init(); + + let blog_base = warp::path!("blog" / ..); + let blog_list = blog_base.and_then(blog::handlers::list); + let blog_post = blog_base.and( + warp::path!(String) + .and(warp::get()).and_then(blog::handlers::post)); + + let blog = blog_list.or(blog_post); + + let site = blog.with(warp::log("site")); + + let server = warp::serve(site); + + server + .run(( + IpAddr::from_str(&std::env::var("HOST").unwrap_or("127.0.0.1".into()))?, + std::env::var("PORT") + .unwrap_or("3030".into()) + .parse::<u16>()?, + )) + .await; + + Ok(()) +} |