Compare commits

...

2 Commits

Author SHA1 Message Date
Jef Roosens 19a21b8cdf
Added docs & web FileServer routes 2021-10-12 17:05:21 +02:00
Jef Roosens ce97f36c18
Removed unnecessary build.rs 2021-10-12 16:47:05 +02:00
2 changed files with 19 additions and 36 deletions

View File

@ -1,34 +0,0 @@
use std::{env, process::Command};
fn main()
{
if env::var_os("CARGO_FEATURE_WEB").is_some() {
println!("cargo:rerun-if-changed=web");
let status = Command::new("yarn")
.arg("build")
.current_dir("web")
.status()
.expect("Failed to build frontend.");
if status.code().unwrap() != 0 {
panic!("Building frontend failed.");
}
}
// This currently isn't possible because cargo doc requires a lock on the Cargo.lock file that
// can't be provided
// if env::var_os("CARGO_FEATURE_DOCS").is_some() {
// println!("cargo:rerun-if-changed=src");
// let status = Command::new(env::var("CARGO").unwrap())
// .args(["doc", "--no-deps"])
// .status()
// .expect("Failed to build docs.");
// if status.code().unwrap() != 0 {
// panic!("Failed to build docs.");
// }
// }
}

View File

@ -18,6 +18,10 @@ use rocket::{
serde::json::{json, Value},
Build, Orbit, Request, Rocket,
};
#[cfg(any(feature = "web", feature="docs"))]
use rocket::fs;
use rocket_sync_db_pools::database;
use serde::{Deserialize, Serialize};
@ -94,7 +98,7 @@ fn rocket() -> _
.merge(Yaml::file("Rb.yaml").nested())
.merge(Env::prefixed("RB_").global());
rocket::custom(figment)
let mut instance = rocket::custom(figment)
.attach(RbDbConn::fairing())
.attach(AdHoc::try_on_ignite(
"Run database migrations",
@ -112,5 +116,18 @@ fn rocket() -> _
routes![admin::create_user, admin::get_user_info],
)
.mount("/api/sections", routes![sections::create_section])
.mount("/api/posts", routes![posts::get, posts::create])
.mount("/api/posts", routes![posts::get, posts::create]);
// It's weird that this is allowed, but the line on its own isn't
#[cfg(feature = "web")]
{
instance = instance.mount("/", fs::FileServer::new("/var/www/html/web", fs::Options::Index | fs::Options::NormalizeDirs));
}
#[cfg(feature = "docs")]
{
instance = instance.mount("/docs", fs::FileServer::new("/var/www/html/docs", fs::Options::Index | fs::Options::NormalizeDirs));
}
instance
}