diff --git a/example/config.toml b/example/config.toml index df2e152..cbf20bd 100644 --- a/example/config.toml +++ b/example/config.toml @@ -25,7 +25,7 @@ sleep = 1 exec = "/usr/bin/echo {ID}" # Supported macro replacements: # * {ID} - parsed item URL # See also: https://codeberg.org/YGGverse/pidpilne/src/branch/main/usr/local/bin/aacp.m4a - stdout_contains = "\n" # Check stdout for containing expected string, optional + stdout_contains = ["\n"] # Check stdout for containing expected string, optional # [[channel.test.item]] # .. diff --git a/src/config/channel/item.rs b/src/config/channel/item.rs index f83b40b..617e4cc 100644 --- a/src/config/channel/item.rs +++ b/src/config/channel/item.rs @@ -3,5 +3,5 @@ use serde::Deserialize; #[derive(Deserialize, PartialEq, Eq, Hash)] pub struct Item { pub exec: String, - pub stdout_contains: Option, + pub stdout_contains: Option>, } diff --git a/src/main.rs b/src/main.rs index 04ff9b0..60108ae 100644 --- a/src/main.rs +++ b/src/main.rs @@ -114,8 +114,11 @@ async fn main() { match Command::new("sh").arg("-c").arg(&cmd).output() { Ok(response) => { if response.status.success() { - if channel_item.stdout_contains.as_ref().is_none_or(|s| { - String::from_utf8_lossy(&response.stdout).contains(s) + if channel_item.stdout_contains.as_ref().is_none_or(|v| { + v.iter().all(|s| { + String::from_utf8_lossy(&response.stdout) + .contains(s) + }) }) { match database.process(&item.id) { Ok(()) => info!(