Handle piped commands

This commit is contained in:
Michael Aquilina 2019-07-17 17:08:26 +01:00
parent 51656c43c7
commit 8ec1400032
No known key found for this signature in database
GPG key ID: 636066730B056BD1
2 changed files with 17 additions and 1 deletions

View file

@ -35,8 +35,14 @@ function _auto_notify_message() {
function _is_auto_notify_ignored() {
local command="$1"
# split the command if its been piped one or more times
local command_list=("${(@s/|/)command}")
local target_command="${command_list[-1]}"
# Remove leading whitespace
target_command="$(echo "$target_command" | sed -e 's/^ *//')}"
for ignore in $AUTO_NOTIFY_IGNORE; do
if [[ "$command" == "$ignore"* ]]; then
if [[ "$target_command" == "$ignore"* ]]; then
print "yes"
return
fi

View file

@ -66,6 +66,16 @@
done
}
@test 'auto-notify-send does not send notification for ignored piped commands' {
AUTO_COMMAND="echo hello world | less -r"
AUTO_COMMAND_FULL="echo hello world | less -r"
AUTO_COMMAND_START=11000
run _auto_notify_send
assert $state equals 0
assert "$output" is_empty
}
@test 'auto-notify-send does not send notification for ignored commands with arguments' {
for command in $AUTO_NOTIFY_IGNORE; do
AUTO_COMMAND="somealias bar -r"