blob: 7e589ec492872f140ccb934abe8181c6e3b51607 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
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();
let repo = git::repo::Repo::new(".");
let commits = git::log::create_commit_log(
"84a9a0ccee713e26a28ff5e54ea3776085d93b5f".into(),
&repo.inner,
);
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
}
|