aboutsummaryrefslogtreecommitdiffstats
path: root/src/widgets/command.rs
diff options
context:
space:
mode:
authorDaniel Jankowski <daniel.jankowski@rub.de>2024-05-08 15:38:11 +0200
committerDaniel Jankowski <daniel.jankowski@rub.de>2024-05-08 15:38:33 +0200
commitf6c8615edc39e0f3433341a677fb415d8248e79d (patch)
tree7cf4adf0290c78b7134beff4a3996e860eddbd10 /src/widgets/command.rs
parentfeat: make env & cwd configurable for command widget (diff)
downloadsl0pstatus-f6c8615edc39e0f3433341a677fb415d8248e79d.tar.gz
sl0pstatus-f6c8615edc39e0f3433341a677fb415d8248e79d.tar.xz
sl0pstatus-f6c8615edc39e0f3433341a677fb415d8248e79d.zip
feat: run command once on interval 0
addresses #52
Diffstat (limited to 'src/widgets/command.rs')
-rw-r--r--src/widgets/command.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/widgets/command.rs b/src/widgets/command.rs
index 7e0dfca..0abe13d 100644
--- a/src/widgets/command.rs
+++ b/src/widgets/command.rs
@@ -126,6 +126,11 @@ fn render_dynamic_formatted_content(content: &str) -> String {
#[tracing::instrument(skip(command_config, state))]
fn run_command_if_needed(command_config: CommandConfig, name: &str, state: &ZellijState) {
+ let got_result = state.command_results.contains_key(name);
+ if got_result && command_config.interval == 0 {
+ return;
+ }
+
let ts = Local::now();
let last_run = get_timestamp_from_event_or_default(name, state, command_config.interval);
@@ -188,7 +193,9 @@ fn parse_config(zj_conf: &BTreeMap<String, String>) -> BTreeMap<String, CommandC
}
if key.ends_with("command") {
- command_conf.command.clone_from(&zj_conf.get(&key).unwrap().to_owned())
+ command_conf
+ .command
+ .clone_from(&zj_conf.get(&key).unwrap().to_owned())
}
if key.ends_with("env") {