mod git; mod pages; mod repo; mod templ_data; use actix_files as fs; use actix_web::{web, App, HttpRequest, HttpResponse, HttpServer}; use std::io; use std::path::PathBuf; #[actix_rt::main] async fn main() -> io::Result<()> { std::env::set_var("RUST_LOG", "actix_server=info,octopus=debug"); env_logger::init(); let root = PathBuf::new(); HttpServer::new(move || { App::new() .service(fs::Files::new("/static", root.join("static"))) // This is a bit of a hack so that people don't get the // 404 on the root page. Especially as long as octopus // doesn't have the account overview yet! .service(web::resource("/").route(web::get().to(|_: HttpRequest| { HttpResponse::PermanentRedirect() .header("Location", "octopus") .finish() }))) .service(web::resource("/{repo}").route(web::get().to(pages::repo::about))) .service(web::resource("/{repo}/details").route(web::get().to(pages::repo::details))) .default_service(web::resource("").route(web::get().to(pages::p404))) }) .bind("127.0.0.1:8080")? .run() .await }