summaryrefslogblamecommitdiff
path: root/src/main.rs
blob: 8e92b51733ac7e0027215c2c36341b14d534e071 (plain) (tree)





































                                                                                    
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(())
}