aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKaiden Fey <kookie@spacekookie.de>2020-10-25 02:40:33 +0100
committerKaiden Fey <kookie@spacekookie.de>2020-10-25 02:40:33 +0100
commit392444d21101ce7b637f2e5a385490605f93ccf1 (patch)
tree75247f7a3b49a17c70a31106b04e09f72848f98a /src
parenta0dca8186bdef76e09e9c388d7f85839e85ce8db (diff)
Big project update
Diffstat (limited to 'src')
-rw-r--r--src/main.rs8
-rw-r--r--src/pages/mod.rs32
-rw-r--r--src/pages/repo/details.rs11
-rw-r--r--src/project/mod.rs8
4 files changed, 48 insertions, 11 deletions
diff --git a/src/main.rs b/src/main.rs
index a0d6dce..92e1bc7 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -3,6 +3,8 @@ mod pages;
mod repo;
mod templ_data;
+mod project;
+
use actix_files as fs;
use actix_web::{web, App, HttpRequest, HttpResponse, HttpServer};
use std::io;
@@ -20,11 +22,7 @@ async fn main() -> io::Result<()> {
// 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("/").route(web::get().to(pages::index)))
.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)))
diff --git a/src/pages/mod.rs b/src/pages/mod.rs
index f838eee..5689af7 100644
--- a/src/pages/mod.rs
+++ b/src/pages/mod.rs
@@ -7,3 +7,35 @@ pub mod repo;
mod p404;
pub use p404::render as p404;
+
+use actix_web::{web, HttpRequest, HttpResponse, Result};
+use askama::Template;
+
+pub(crate) struct BaseData {
+ sitename: String,
+ has_wiki: bool,
+}
+
+#[derive(Template)]
+#[template(path = "index.html", escape = "none")]
+pub(crate) struct Index {
+ base: BaseData,
+ readme: String,
+}
+
+pub async fn index(req: HttpRequest) -> Result<HttpResponse> {
+
+ let readme: String = markdown::to_html(include_str!("../../fake-readme.md").into());
+
+ let index = Index {
+ base: BaseData {
+ sitename: "dev.spacekookie.de".into(),
+ has_wiki: true,
+ },
+ readme
+
+ }
+ .render()
+ .unwrap();
+ Ok(HttpResponse::Ok().content_type("text/html").body(index))
+}
diff --git a/src/pages/repo/details.rs b/src/pages/repo/details.rs
index d5822d6..7298e15 100644
--- a/src/pages/repo/details.rs
+++ b/src/pages/repo/details.rs
@@ -9,16 +9,15 @@ pub async fn render(req: HttpRequest, path: web::Path<String>) -> Result<HttpRes
message: "Updating just like... a bunch of shit".into(),
author: "Katharina Fey".into(),
date: "Today".into(),
- diff: (125, 55)
+ diff: (125, 55),
};
-
+
let repo = pages::Details {
- branches: vec![ BranchData {
+ branches: vec![BranchData {
name: "develop".into(),
last_commit: last_commit.clone(),
- }
- ],
- commits: vec![ last_commit ],
+ }],
+ commits: vec![last_commit],
repo: RepoData {
owner: "spacekookie".into(),
name: "octopus".into(),
diff --git a/src/project/mod.rs b/src/project/mod.rs
new file mode 100644
index 0000000..cf81fd4
--- /dev/null
+++ b/src/project/mod.rs
@@ -0,0 +1,8 @@
+//! Octopus project
+
+use std::{fs::File, path::PathBuf};
+
+/// Check if a directory is a valid project
+pub(crate) fn is_valid(p: PathBuf) -> bool {
+ p.join(".octopus").exists()
+}