2020-11-14 08:55:21 +00:00
|
|
|
use anyhow::*;
|
2020-11-19 07:54:45 +00:00
|
|
|
use futures_core::future::BoxFuture;
|
|
|
|
use futures_util::FutureExt;
|
2020-11-14 08:55:21 +00:00
|
|
|
use log::LevelFilter;
|
2020-11-30 19:27:58 +00:00
|
|
|
use northstar::{Server, Request, Response, GEMINI_PORT, Gemtext};
|
2020-11-14 08:55:21 +00:00
|
|
|
|
|
|
|
#[tokio::main]
|
|
|
|
async fn main() -> Result<()> {
|
|
|
|
env_logger::builder()
|
|
|
|
.filter_module("northstar", LevelFilter::Debug)
|
|
|
|
.init();
|
|
|
|
|
|
|
|
Server::bind(("localhost", GEMINI_PORT))
|
|
|
|
.serve(handle_request)
|
|
|
|
.await
|
|
|
|
}
|
|
|
|
|
|
|
|
fn handle_request(_request: Request) -> BoxFuture<'static, Result<Response>> {
|
|
|
|
async move {
|
2020-11-30 19:27:58 +00:00
|
|
|
let response = Gemtext::new()
|
|
|
|
.preformatted("Northstar", include_str!("northstar_logo.txt"))
|
|
|
|
.blank_line()
|
|
|
|
.link("https://docs.rs/northstar", Some("Documentation"))
|
|
|
|
.link("https://github.com/panicbit/northstar", Some("GitHub"))
|
|
|
|
.blank_line()
|
|
|
|
.heading(1, "Usage")
|
|
|
|
.blank_line()
|
|
|
|
.text("Add the latest version of northstar to your `Cargo.toml`.")
|
|
|
|
.blank_line()
|
|
|
|
.heading(2, "Manually")
|
|
|
|
.blank_line()
|
|
|
|
.preformatted("toml", r#"northstar = "0.3.0" # check crates.io for the latest version"#)
|
|
|
|
.blank_line()
|
|
|
|
.heading(2, "Automatically")
|
|
|
|
.blank_line()
|
|
|
|
.preformatted("sh", "cargo add northstar")
|
|
|
|
.blank_line()
|
|
|
|
.heading(1, "Generating a key & certificate")
|
|
|
|
.blank_line()
|
|
|
|
.preformatted("sh", concat!(
|
2020-11-14 08:55:21 +00:00
|
|
|
"mkdir cert && cd cert\n",
|
|
|
|
"openssl req -x509 -nodes -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365",
|
2020-11-20 14:51:37 +00:00
|
|
|
))
|
|
|
|
.into();
|
|
|
|
Ok(response)
|
2020-11-14 08:55:21 +00:00
|
|
|
}
|
|
|
|
.boxed()
|
|
|
|
}
|