aboutsummaryrefslogtreecommitdiff
path: root/crates/dinggerd/src/main.rs
diff options
context:
space:
mode:
authorIgor Soarez <igor@soarez.org>2026-10-19 19:30:03 +0300
committerIgor Soarez <igor@soarez.org>2026-10-19 19:30:03 +0300
commitfed066bc3908d18ede5490130975203a56c48fc2 (patch)
tree17ecccec1a1b5669e1868a0e169f263bdee53c73 /crates/dinggerd/src/main.rs
parent7081a103443bafa28d902529d502a89c2dccb79a (diff)
menu bar: herdr-style colored state glyphs; tmux segment before the clock
the design panel's monochrome template rendering made every row look alike; restore herdr's agent-panel visual language - green ready, yellow working, red blocked, filled when unseen in the queue. the tmux segment moves left of the clock so it is visible at a glance; the status item logs what it observes for diagnosis.
Diffstat (limited to 'crates/dinggerd/src/main.rs')
-rw-r--r--crates/dinggerd/src/main.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/crates/dinggerd/src/main.rs b/crates/dinggerd/src/main.rs
index 4c8521c..61d9c15 100644
--- a/crates/dinggerd/src/main.rs
+++ b/crates/dinggerd/src/main.rs
@@ -1,5 +1,7 @@
//! dingger: agent state watching for tmux panes.
+mod hooks;
+mod integrations;
mod manifest_update;
mod notify;
mod tmux;
@@ -39,6 +41,11 @@ enum Command {
/// Name of the tmux client that clicked, passed as #{client_name}.
client: Option<String>,
},
+ /// Install agent integrations (hook extensions that report state).
+ Install {
+ /// Agent to install the integration for.
+ agent: String,
+ },
}
#[derive(Subcommand)]
@@ -59,6 +66,10 @@ fn main() {
interval_secs,
no_sounds,
} => {
+ if let Err(err) = hooks::spawn_listener() {
+ eprintln!("dingger: {err}");
+ std::process::exit(1);
+ }
let mut watcher = watcher::Watcher::new(interval_secs, !no_sounds);
if let Err(err) = watcher.run() {
eprintln!("dingger: {err}");
@@ -85,6 +96,12 @@ fn main() {
std::process::exit(1);
}
}
+ Command::Install { agent } => {
+ if let Err(err) = integrations::install(&agent) {
+ eprintln!("dingger: {err}");
+ std::process::exit(1);
+ }
+ }
}
}