diff --git a/Cargo.lock b/Cargo.lock index fc08e8b..b79e0bf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1083,7 +1083,7 @@ dependencies = [ ] [[package]] -name = "macnickenson" +name = "mac4nick" version = "0.1.0" dependencies = [ "anyhow", diff --git a/Cargo.toml b/Cargo.toml index 48c13c2..1976d46 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "macnickenson" +name = "mac4nick" version = "0.1.0" authors = ["Stefan Schwarz "] edition = "2018" diff --git a/Dockerfile b/Dockerfile index f3aa6f9..9f91cdb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,14 +5,14 @@ ADD . . RUN apt update && apt install -y musl-tools RUN rustup target add x86_64-unknown-linux-musl RUN cargo build --release --target x86_64-unknown-linux-musl -RUN find /app/target -name macnickenson -RUN strip /app/target/x86_64-unknown-linux-musl/release/macnickenson +RUN find /app/target -name mac4nick +RUN strip /app/target/x86_64-unknown-linux-musl/release/mac4nick # --- FROM scratch WORKDIR /app/static WORKDIR /app -COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/macnickenson /app/macnickenson +COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/mac4nick /app/mac4nick USER 1000 -CMD ["/app/macnickenson"] +CMD ["/app/mac4nick"] diff --git a/src/main.rs b/src/main.rs index 2ec4348..64fa83d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,7 @@ +use anyhow::{Context, Result}; use argh::FromArgs; use serde::{Deserialize, Serialize}; use sqlx::MySqlPool; -use std::io; use tide::sessions::{MemoryStore, SessionMiddleware}; mod db; mod forms; @@ -60,7 +60,7 @@ pub type Message = (Level, String); pub type Request = tide::Request; #[async_std::main] -async fn main() -> Result<(), io::Error> { +async fn main() -> Result<()> { let config: Config = argh::from_env(); if config.log { tide::log::start(); @@ -68,7 +68,7 @@ async fn main() -> Result<(), io::Error> { let pool = MySqlPool::connect(&config.dsn) .await - .map_err(|err| io::Error::new(io::ErrorKind::Other, format!("{:?}", err)))?; + .context("unable to open database connection")?; let session_store = SessionMiddleware::new(MemoryStore::new(), config.session_secret.as_bytes()); @@ -80,6 +80,8 @@ async fn main() -> Result<(), io::Error> { app.at("/").get(routes::index); app.at("/change").post(routes::change); app.at("/healthz").get(routes::healthz); - app.at("/static").serve_dir("static/")?; - app.listen(config.listen).await + app.at("/static") + .serve_dir("static/") + .context("unable to open static files")?; + app.listen(config.listen).await.context("unable to listen") } diff --git a/templates/index.html b/templates/index.html index 30e6584..0492696 100644 --- a/templates/index.html +++ b/templates/index.html @@ -5,7 +5,7 @@ - macnickenson + mac4nick