summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormdecimus <mauro@stalw.art>2024-09-27 16:31:53 +0200
committermdecimus <mauro@stalw.art>2024-09-27 16:31:53 +0200
commit131bca1dfd9c9f4dc171e6d32bd5b78aa2ebda19 (patch)
tree34c368c6030c9855046273838bcc582265177625
parentc62859705b75378463e8033bb02ce2c6037a819f (diff)
Added webadmin.path config to override unpack directory (#792)
-rw-r--r--crates/common/src/config/inner.rs5
-rw-r--r--crates/common/src/manager/webadmin.rs12
2 files changed, 10 insertions, 7 deletions
diff --git a/crates/common/src/config/inner.rs b/crates/common/src/config/inner.rs
index 92528e26..6b4e99b3 100644
--- a/crates/common/src/config/inner.rs
+++ b/crates/common/src/config/inner.rs
@@ -69,7 +69,10 @@ impl Data {
jmap_id_gen: id_generator.clone(),
queue_id_gen: id_generator.clone(),
span_id_gen: id_generator,
- webadmin: WebAdminManager::new(),
+ webadmin: config
+ .value("webadmin.path")
+ .map(|path| WebAdminManager::new(path.into()))
+ .unwrap_or_default(),
config_version: 0.into(),
jmap_limiter: DashMap::with_capacity_and_hasher_and_shard_amount(
capacity,
diff --git a/crates/common/src/manager/webadmin.rs b/crates/common/src/manager/webadmin.rs
index cf52a266..27e3f1ac 100644
--- a/crates/common/src/manager/webadmin.rs
+++ b/crates/common/src/manager/webadmin.rs
@@ -39,9 +39,9 @@ impl<T> Resource<T> {
}
impl WebAdminManager {
- pub fn new() -> Self {
+ pub fn new(base_path: PathBuf) -> Self {
Self {
- bundle_path: TempDir::new(),
+ bundle_path: TempDir::new(base_path),
routes: ArcSwap::from_pointee(Default::default()),
}
}
@@ -171,9 +171,9 @@ pub struct TempDir {
}
impl TempDir {
- pub fn new() -> TempDir {
+ pub fn new(path: PathBuf) -> TempDir {
TempDir {
- path: std::env::temp_dir().join(std::str::from_utf8(WEBADMIN_KEY).unwrap()),
+ path: path.join(std::str::from_utf8(WEBADMIN_KEY).unwrap()),
}
}
@@ -193,13 +193,13 @@ fn unpack_error(err: std::io::Error) -> trc::Error {
impl Default for WebAdminManager {
fn default() -> Self {
- Self::new()
+ Self::new(std::env::temp_dir())
}
}
impl Default for TempDir {
fn default() -> Self {
- Self::new()
+ Self::new(std::env::temp_dir())
}
}