diff --git a/crates/ctl/src/cli/mod.rs b/crates/ctl/src/cli/mod.rs index 8f68ef8..15ecde3 100644 --- a/crates/ctl/src/cli/mod.rs +++ b/crates/ctl/src/cli/mod.rs @@ -43,8 +43,13 @@ impl ControlCommand { pub async fn run(self) -> Result<()> { let client = ControlClientProvider::dial(self.connection.parse()?).await?; let events = EventStream::open(client.clone()).await?; + self.command.run(client, events).await + } +} - match self.command { +impl ControlCommands { + pub async fn run(self, client: ControlServiceClient, events: EventStream) -> Result<()> { + match self { ControlCommands::Zone(zone) => zone.run(client, events).await, ControlCommands::Image(image) => image.run(client, events).await,