aboutsummaryrefslogtreecommitdiffstats
path: root/crates/daemon/src/control/mod.rs
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-07-20 14:18:36 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-07-20 14:18:36 +0200
commit63a0ec3901a863fb07d18f4b814a98a813644382 (patch)
treec94b7b501601b5df05cf654e9f9c9b5bc66a239e /crates/daemon/src/control/mod.rs
parentchore: Commit (diff)
downloadatuin-63a0ec3901a863fb07d18f4b814a98a813644382.zip
chore: Commit
Diffstat (limited to 'crates/daemon/src/control/mod.rs')
-rw-r--r--crates/daemon/src/control/mod.rs74
1 files changed, 0 insertions, 74 deletions
diff --git a/crates/daemon/src/control/mod.rs b/crates/daemon/src/control/mod.rs
deleted file mode 100644
index f727a3a2..00000000
--- a/crates/daemon/src/control/mod.rs
+++ /dev/null
@@ -1,74 +0,0 @@
-//! Control service implementation.
-//!
-//! This gRPC service allows external processes (like CLI commands) to inject
-//! events into the daemon's event bus.
-
-use tonic::{Request, Response, Status};
-use tracing::{Level, info, instrument};
-
-use crate::{
- aclient::history::HistoryId,
- daemon::DaemonHandle,
- events::DaemonEvent,
- generated::control::{
- SendEventRequest, SendEventResponse,
- control_server::{Control, ControlServer},
- send_event_request::Event,
- },
-};
-
-/// The Control gRPC service.
-///
-/// This service is used by external processes to inject events into the daemon.
-/// It's not a component - it's part of the daemon's core infrastructure.
-pub(crate) struct ControlService {
- handle: DaemonHandle,
-}
-
-impl ControlService {
- /// Create a new control service with the given daemon handle.
- pub(crate) fn new(handle: DaemonHandle) -> Self {
- Self { handle }
- }
-
- /// Get a tonic server for this service.
- pub(crate) fn into_server(self) -> ControlServer<Self> {
- ControlServer::new(self)
- }
-}
-
-#[tonic::async_trait]
-impl Control for ControlService {
- #[instrument(skip_all, level = Level::INFO, name = "control_send_event")]
- async fn send_event(
- &self,
- request: Request<SendEventRequest>,
- ) -> Result<Response<SendEventResponse>, Status> {
- let req = request.into_inner();
-
- let event = req
- .event
- .ok_or_else(|| Status::invalid_argument("event is required"))?;
-
- let daemon_event = proto_event_to_daemon_event(event);
-
- info!(?daemon_event, "received control event");
- self.handle.emit(daemon_event);
-
- Ok(Response::new(SendEventResponse {}))
- }
-}
-
-/// Convert a proto event to a daemon event.
-fn proto_event_to_daemon_event(event: Event) -> DaemonEvent {
- match event {
- Event::HistoryPruned(_) => DaemonEvent::HistoryPruned,
- Event::HistoryRebuilt(_) => DaemonEvent::HistoryRebuilt,
- Event::HistoryDeleted(e) => DaemonEvent::HistoryDeleted {
- ids: e.ids.into_iter().map(HistoryId).collect(),
- },
- Event::ForceSync(_) => DaemonEvent::ForceSync,
- Event::SettingsReloaded(_) => DaemonEvent::SettingsReloaded,
- Event::Shutdown(_) => DaemonEvent::ShutdownRequested,
- }
-}