fix(cli): serving web ui in Docker/AppImage

fix/notes-editor
Tomáš Mládek 2024-01-28 14:35:17 +01:00
parent faa75278a1
commit 852d64b38d
5 changed files with 18 additions and 22 deletions

7
Cargo.lock generated
View File

@ -819,12 +819,6 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2"
[[package]]
name = "constcat"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d5cd0c57ef83705837b1cb872c973eff82b070846d3e23668322b2c0f8246d0"
[[package]] [[package]]
name = "convert_case" name = "convert_case"
version = "0.4.0" version = "0.4.0"
@ -3335,7 +3329,6 @@ dependencies = [
"bytes", "bytes",
"chrono", "chrono",
"clap", "clap",
"constcat",
"diesel", "diesel",
"diesel_migrations", "diesel_migrations",
"filebuffer", "filebuffer",

View File

@ -90,7 +90,6 @@ url = "2"
bytes = "1.4.0" bytes = "1.4.0"
signal-hook = "0.3.15" signal-hook = "0.3.15"
actix-web-lab = { version = "0.20.2", features = ["spa"] } actix-web-lab = { version = "0.20.2", features = ["spa"] }
constcat = "0.4.1"
[build-dependencies] [build-dependencies]
shadow-rs = { version = "0.23", default-features = false } shadow-rs = { version = "0.23", default-features = false }

View File

@ -1,19 +1,23 @@
use constcat::concat; use std::env::current_exe;
use std::path::PathBuf;
use lazy_static::lazy_static; use lazy_static::lazy_static;
use shadow_rs::shadow; use shadow_rs::{is_debug, shadow};
shadow!(build); shadow!(build);
#[cfg(not(debug_assertions))]
pub const RESOURCE_PATH: &str = "../share/upend";
#[cfg(debug_assertions)]
pub const RESOURCE_PATH: &str = "./tmp/resources";
pub const WEBUI_PATH: &str = concat!(RESOURCE_PATH, "/webui");
lazy_static! { lazy_static! {
pub static ref RESOURCE_PATH: PathBuf = if is_debug() {
let project_root = build::CARGO_MANIFEST_DIR.parse::<PathBuf>().unwrap();
project_root.join("./tmp/resources")
} else {
current_exe()
.unwrap()
.parent()
.unwrap()
.join("../share/upend")
};
pub static ref WEBUI_PATH: PathBuf = RESOURCE_PATH.join("webui");
static ref APP_USER_AGENT: String = format!("upend / {}", build::PKG_VERSION); static ref APP_USER_AGENT: String = format!("upend / {}", build::PKG_VERSION);
pub static ref REQWEST_CLIENT: reqwest::blocking::Client = reqwest::blocking::Client::builder() pub static ref REQWEST_CLIENT: reqwest::blocking::Client = reqwest::blocking::Client::builder()
.user_agent(APP_USER_AGENT.as_str()) .user_agent(APP_USER_AGENT.as_str())

View File

@ -345,11 +345,11 @@ async fn main() -> Result<()> {
let webui_enabled = if args.no_ui { let webui_enabled = if args.no_ui {
false false
} else { } else {
let exists = Path::new(WEBUI_PATH).exists(); let exists = WEBUI_PATH.exists();
if !exists { if !exists {
warn!( warn!(
"Couldn't locate Web UI directory ({:?}), disabling...", "Couldn't locate Web UI directory ({:?}), disabling...",
WEBUI_PATH WEBUI_PATH.to_owned()
); );
} }
exists exists

View File

@ -71,8 +71,8 @@ where
if ui_enabled { if ui_enabled {
return app.service( return app.service(
spa() spa()
.index_file(crate::common::WEBUI_PATH.to_owned() + "/index.html") .index_file(crate::common::WEBUI_PATH.to_str().unwrap().to_owned() + "/index.html")
.static_resources_location(crate::common::WEBUI_PATH) .static_resources_location(crate::common::WEBUI_PATH.to_str().unwrap())
.finish(), .finish(),
); );
} }