Add support for specifying a WHITELIST
This commit is contained in:
parent
8aa4c42932
commit
a77777987d
3 changed files with 51 additions and 7 deletions
11
README.rst
11
README.rst
|
@ -143,6 +143,17 @@ a new array.
|
|||
# redefine what is ignored by auto-notify
|
||||
export AUTO_NOTIFY_IGNORE=("docker" "man" "sleep")
|
||||
|
||||
**Using a Whitelist to ignore commands**
|
||||
|
||||
If you wish to use a whitelist approach instead of the default blacklist approach used by ``AUTO_NOTIFY_IGNORE``,
|
||||
you can do so by defining the environment variable ``AUTO_NOTIFY_WHITELIST`` with the elements you wish to
|
||||
allow ``auto-notify`` to track and send notifications for. NOTE: If ``AUTO_NOTIFY_WHITELIST`` is defined,
|
||||
then all the values in ``AUTO_NOTIFY_IGNORE`` are not used.
|
||||
|
||||
::
|
||||
|
||||
export AUTO_NOTIFY_WHITELIST=("apt-get" "docker")
|
||||
|
||||
Temporarily Disabling Notifications
|
||||
-----------------------------------
|
||||
|
||||
|
|
|
@ -61,13 +61,28 @@ function _is_auto_notify_ignored() {
|
|||
# Remove leading whitespace
|
||||
target_command="$(echo "$target_command" | sed -e 's/^ *//')"
|
||||
|
||||
for ignore in $AUTO_NOTIFY_IGNORE; do
|
||||
if [[ "$target_command" == "$ignore"* ]]; then
|
||||
print "yes"
|
||||
return
|
||||
fi
|
||||
done
|
||||
print "no"
|
||||
# If AUTO_NOTIFY_WHITELIST is defined, then auto-notify will ignore
|
||||
# any item not defined in the white list
|
||||
# Otherwise - the alternative (default) approach is used where the
|
||||
# AUTO_NOTIFY_IGNORE blacklist is used to ignore commands
|
||||
|
||||
if [[ -n "$AUTO_NOTIFY_WHITELIST" ]]; then
|
||||
for allowed in $AUTO_NOTIFY_WHITELIST; do
|
||||
if [[ "$target_command" == "$allowed"* ]]; then
|
||||
print "no"
|
||||
return
|
||||
fi
|
||||
done
|
||||
print "yes"
|
||||
else
|
||||
for ignore in $AUTO_NOTIFY_IGNORE; do
|
||||
if [[ "$target_command" == "$ignore"* ]]; then
|
||||
print "yes"
|
||||
return
|
||||
fi
|
||||
done
|
||||
print "no"
|
||||
fi
|
||||
}
|
||||
|
||||
function _auto_notify_send() {
|
||||
|
|
|
@ -33,3 +33,21 @@
|
|||
assert $state equals 0
|
||||
assert "$output" same_as "yes"
|
||||
}
|
||||
|
||||
@test 'is_auto_notify_ignored - AUTO_NOTIFY_WHITELIST disallowed' {
|
||||
AUTO_NOTIFY_WHITELIST="foobar"
|
||||
|
||||
run _is_auto_notify_ignored "boom baz"
|
||||
|
||||
assert $state equals 0
|
||||
assert "$output" same_as "yes"
|
||||
}
|
||||
|
||||
@test 'is_auto_notify_ignored - AUTO_NOTIFY_WHITELIST allowed' {
|
||||
AUTO_NOTIFY_WHITELIST="foobar"
|
||||
|
||||
run _is_auto_notify_ignored "foobar baz"
|
||||
|
||||
assert $state equals 0
|
||||
assert "$output" same_as "no"
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue