From edc247b558b0124ec301db05fa54f74063a44d69 Mon Sep 17 00:00:00 2001 From: Gunwant Jain Date: Wed, 19 Jan 2022 13:37:07 +0530 Subject: [PATCH] Templates: fix the content type of templates Templating is weird af in Rocket. Look into 3a541ae for more. The content-type of the rendering is determined by the extension of the template name. But renaming these templates would break building the project for development because it finds a phony template there. So the trick is to default the `template_dir` to `args.upload` because it should never interfere and will be always present. This also fixes the hax in Dockerfile by making it the default. Signed-off-by: Gunwant Jain --- Dockerfile | 2 -- docker-compose.yml | 2 +- src/main.rs | 14 +++++++------- src/routes/index.rs | 2 +- src/routes/pretty_retrieve.rs | 2 +- src/routes/pretty_retrieve_ext.rs | 2 +- templates/index.html.tera | 2 +- templates/pretty.html.tera | 2 +- 8 files changed, 13 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index 89ede34..4ad0617 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,8 +25,6 @@ FROM scratch as runner COPY --from=builder /usr/local/cargo/bin/bin . ENV BIN_ADDRESS=0.0.0.0 -# Some hax required since we are running on scratch -ENV BIN_TEMPLATE_DIR=upload EXPOSE 6162 CMD ["./bin"] diff --git a/docker-compose.yml b/docker-compose.yml index e77c4bb..8887331 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,7 +6,7 @@ services: ports: - 127.0.0.1:6163:6163 environment: - - BIN_PORT=6163 + - BIN_PORT=6163 # Defaults to 6162 - BIN_LIMITS={form="16 MiB"} volumes: - ./upload:/upload # upload folder will have your pastes diff --git a/src/main.rs b/src/main.rs index 35085fc..7730e98 100644 --- a/src/main.rs +++ b/src/main.rs @@ -22,10 +22,10 @@ fn setup_tera_engine(tera: &mut Tera) { // and shove them in the tera instance tera.add_raw_templates(vec![ - ("base", std::str::from_utf8(&base_html.data).unwrap()), - ("index", std::str::from_utf8(&index_html.data).unwrap()), + ("base.html", std::str::from_utf8(&base_html.data).unwrap()), + ("index.html", std::str::from_utf8(&index_html.data).unwrap()), ( - "pretty", + "pretty.html", std::str::from_utf8(&pretty_html.data).unwrap(), ), ]) @@ -68,13 +68,13 @@ fn rocket() -> _ { // Custom Fairings and Providers let shield = Shield::default().disable::(); let figment = Figment::from(rocket::Config::default()) - .merge(("port", args.port)) - .merge(("address", args.address)) - .merge(("template_dir", ".")) // Required if embedding templates + .merge(("port", &args.port)) + .merge(("address", &args.address)) + .merge(("template_dir", &args.upload)) // Required if embedding templates .merge(Env::prefixed("BIN_").global()); // create the upload directory, if not already created - fs::create_dir_all(args.upload) + fs::create_dir_all(&args.upload) .expect("Could not create the upload directory"); rocket::custom(figment) diff --git a/src/routes/index.rs b/src/routes/index.rs index c314d80..93b123a 100644 --- a/src/routes/index.rs +++ b/src/routes/index.rs @@ -6,5 +6,5 @@ use std::collections::HashMap; pub async fn index() -> Option