diff options
Diffstat (limited to 'crates/daemon/src/api/server/control.rs')
| -rw-r--r-- | crates/daemon/src/api/server/control.rs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/crates/daemon/src/api/server/control.rs b/crates/daemon/src/api/server/control.rs index 8d1ec7b8..a5e26355 100644 --- a/crates/daemon/src/api/server/control.rs +++ b/crates/daemon/src/api/server/control.rs @@ -11,7 +11,7 @@ use crate::{ api::{ DAEMON_PROTOCOL_VERSION, DAEMON_VERSION, generated::control::{ - ForceSyncReply, ForceSyncRequest, StatusReply, StatusRequest, + ForceSyncReply, ForceSyncRequest, PathsReply, PathsRequest, StatusReply, StatusRequest, control_server::{Control, ControlServer}, }, }, @@ -58,6 +58,22 @@ impl ControlService { #[tonic::async_trait] impl Control for ControlService { #[instrument(skip_all, level = Level::INFO)] + async fn paths(&self, _request: Request<PathsRequest>) -> Result<Response<PathsReply>, Status> { + let settings = self.handle.settings().await; + + let config = Settings::get_config_path() + .map_err(|e| Status::internal(format!("failed to get settings path: {e:?}")))?; + + let reply = PathsReply { + config: config.to_string_lossy().to_string(), + db: settings.db_path.clone(), + socket: settings.daemon.socket_path.clone(), + }; + + Ok(Response::new(reply)) + } + + #[instrument(skip_all, level = Level::INFO)] async fn status( &self, _request: Request<StatusRequest>, |
