From 783bb02b2c77e2c5b11f5095c9d99cb07f0d72f4 Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Fri, 26 Jun 2015 13:14:04 +0100 Subject: [PATCH 01/18] Implement events logging feature Record events (i.e. pluginhook's calls) as syslog entries and provide a shortcut command to display the last part of the log file. A brief summary of the changes follows: dokku: - New DOKKU_EVENTS_LOGFILE envvar to hold logfile location. plugins/20_events/commands: - events output log entries, a tail's follow-like mode is provided too. - events:[on|off] enables/disables logging. - events:list lists events that are logged. plugins/20_events/hook: - Generic hook that writes log entries. All the events are registered via symlink to this script. plugins/common/functions: - dokku_log_event() writes log entries via logger. - dokku_log_pluginhook_call() formats log entries and writes them via dokku_log_event(). --- dokku | 2 + plugins/20_events/backup-check | 1 + plugins/20_events/backup-export | 1 + plugins/20_events/backup-import | 1 + plugins/20_events/bind-external-ip | 1 + plugins/20_events/check-deploy | 1 + plugins/20_events/commands | 54 +++++++++++++++++++++++ plugins/20_events/dependencies | 1 + plugins/20_events/docker-args-build | 1 + plugins/20_events/docker-args-deploy | 1 + plugins/20_events/docker-args-run | 1 + plugins/20_events/git-post-pull | 1 + plugins/20_events/git-pre-pull | 1 + plugins/20_events/hook | 5 +++ plugins/20_events/install | 20 +++++++++ plugins/20_events/nginx-hostname | 1 + plugins/20_events/nginx-pre-reload | 1 + plugins/20_events/post-build-buildstep | 1 + plugins/20_events/post-build-dockerfile | 1 + plugins/20_events/post-delete | 1 + plugins/20_events/post-deploy | 1 + plugins/20_events/post-domains-update | 1 + plugins/20_events/post-release-buildstep | 1 + plugins/20_events/post-release-dockerfile | 1 + plugins/20_events/pre-build-buildstep | 1 + plugins/20_events/pre-build-dockerfile | 1 + plugins/20_events/pre-delete | 1 + plugins/20_events/pre-deploy | 1 + plugins/20_events/pre-release-buildstep | 1 + plugins/20_events/pre-release-dockerfile | 1 + plugins/20_events/receive-app | 1 + plugins/20_events/update | 1 + plugins/common/functions | 11 +++++ 33 files changed, 120 insertions(+) create mode 120000 plugins/20_events/backup-check create mode 120000 plugins/20_events/backup-export create mode 120000 plugins/20_events/backup-import create mode 120000 plugins/20_events/bind-external-ip create mode 120000 plugins/20_events/check-deploy create mode 100755 plugins/20_events/commands create mode 120000 plugins/20_events/dependencies create mode 120000 plugins/20_events/docker-args-build create mode 120000 plugins/20_events/docker-args-deploy create mode 120000 plugins/20_events/docker-args-run create mode 120000 plugins/20_events/git-post-pull create mode 120000 plugins/20_events/git-pre-pull create mode 100755 plugins/20_events/hook create mode 100755 plugins/20_events/install create mode 120000 plugins/20_events/nginx-hostname create mode 120000 plugins/20_events/nginx-pre-reload create mode 120000 plugins/20_events/post-build-buildstep create mode 120000 plugins/20_events/post-build-dockerfile create mode 120000 plugins/20_events/post-delete create mode 120000 plugins/20_events/post-deploy create mode 120000 plugins/20_events/post-domains-update create mode 120000 plugins/20_events/post-release-buildstep create mode 120000 plugins/20_events/post-release-dockerfile create mode 120000 plugins/20_events/pre-build-buildstep create mode 120000 plugins/20_events/pre-build-dockerfile create mode 120000 plugins/20_events/pre-delete create mode 120000 plugins/20_events/pre-deploy create mode 120000 plugins/20_events/pre-release-buildstep create mode 120000 plugins/20_events/pre-release-dockerfile create mode 120000 plugins/20_events/receive-app create mode 120000 plugins/20_events/update diff --git a/dokku b/dokku index 6316a5a5e..b11e051ec 100755 --- a/dokku +++ b/dokku @@ -10,6 +10,8 @@ export PLUGIN_PATH=${PLUGIN_PATH:="/var/lib/dokku/plugins"} export DOKKU_NOT_IMPLEMENTED_EXIT=10 export DOKKU_VALID_EXIT=0 +export DOKKU_EVENTS_LOGFILE=${DOKKU_EVENTS_LOGFILE:="/var/log/dokku.log"} + source "$PLUGIN_PATH/common/functions" [[ -f $DOKKU_ROOT/dokkurc ]] && source $DOKKU_ROOT/dokkurc diff --git a/plugins/20_events/backup-check b/plugins/20_events/backup-check new file mode 120000 index 000000000..5178a749f --- /dev/null +++ b/plugins/20_events/backup-check @@ -0,0 +1 @@ +hook \ No newline at end of file diff --git a/plugins/20_events/backup-export b/plugins/20_events/backup-export new file mode 120000 index 000000000..5178a749f --- /dev/null +++ b/plugins/20_events/backup-export @@ -0,0 +1 @@ +hook \ No newline at end of file diff --git a/plugins/20_events/backup-import b/plugins/20_events/backup-import new file mode 120000 index 000000000..5178a749f --- /dev/null +++ b/plugins/20_events/backup-import @@ -0,0 +1 @@ +hook \ No newline at end of file diff --git a/plugins/20_events/bind-external-ip b/plugins/20_events/bind-external-ip new file mode 120000 index 000000000..5178a749f --- /dev/null +++ b/plugins/20_events/bind-external-ip @@ -0,0 +1 @@ +hook \ No newline at end of file diff --git a/plugins/20_events/check-deploy b/plugins/20_events/check-deploy new file mode 120000 index 000000000..5178a749f --- /dev/null +++ b/plugins/20_events/check-deploy @@ -0,0 +1 @@ +hook \ No newline at end of file diff --git a/plugins/20_events/commands b/plugins/20_events/commands new file mode 100755 index 000000000..377fee86f --- /dev/null +++ b/plugins/20_events/commands @@ -0,0 +1,54 @@ +#!/usr/bin/env bash +set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x +source "$(dirname $0)/../common/functions" + +find "$l_plugin_dir" -type l -printf "%f " | sort + +case "$1" in + events) + if [[ -f $DOKKU_EVENTS_LOGFILE ]] ; then + if [[ $2 == "-t" ]]; then + tail -f $DOKKU_EVENTS_LOGFILE + else + tail -n 100 $DOKKU_EVENTS_LOGFILE + fi + fi + ;; + + events:on) + echo "Enabling dokku events logger" + [[ -d $DOKKU_ROOT/.dokkurc ]] || mkdir -p $DOKKU_ROOT/.dokkurc + echo "export DOKKU_EVENTS=1" > $DOKKU_ROOT/.dokkurc/DOKKU_EVENTS + ;; + + events:off) + echo "Disabling dokku events logger" + rm -f $DOKKU_ROOT/.dokkurc/DOKKU_EVENTS + ;; + + events:list) + if [[ "$DOKKU_EVENTS" ]]; then + dokku_col_log_info2_quiet "Events currently logged" + for hook in $(find $(dirname $0) -type l -printf "%f " | sort) ; do + dokku_col_log_msg "$hook" + done + else + dokku_log_warn "Events logger disabled" + fi + ;; + + help | events:help) + cat && cat<"$DOKKU_RSYSLOG_FILTER" < Date: Fri, 26 Jun 2015 15:11:42 +0100 Subject: [PATCH 02/18] Fix missing 'fi' in plugins/20_events/install --- plugins/20_events/install | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/20_events/install b/plugins/20_events/install index c9fc2c02b..c5e47ebda 100755 --- a/plugins/20_events/install +++ b/plugins/20_events/install @@ -14,6 +14,7 @@ if [[ ! -f "$DOKKU_RSYSLOG_FILTER" ]]; then :syslogtag, contains, "dokku" $DOKKU_EVENTS_LOGFILE EOF service rsyslog reload +fi [[ "$DOKKU_EVENTS" ]] && dokku_log_pluginhook_call "$(basename $0)" $@ From f5e213e390493f9c0cf11f72e68e19c82c861b07 Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Fri, 26 Jun 2015 15:12:55 +0100 Subject: [PATCH 03/18] Add missing DOKKU_RSYSLOG_FILTER in install script It had gone lost while porting the original 3rd party plugin. --- plugins/20_events/install | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/20_events/install b/plugins/20_events/install index c5e47ebda..f2cef282f 100755 --- a/plugins/20_events/install +++ b/plugins/20_events/install @@ -2,6 +2,8 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x source "$(dirname $0)/../common/functions" +DOKKU_RSYSLOG_FILTER=/etc/rsyslog.d/99-dokku.conf + if [[ ! -f "$DOKKU_EVENTS_LOGFILE" ]]; then touch "$DOKKU_EVENTS_LOGFILE" # chown syslog:root might not work on SUSE From a858bc8f812dceba8eccd263fd8b7e3fc9a39437 Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Fri, 26 Jun 2015 15:14:51 +0100 Subject: [PATCH 04/18] Double quote $@ array expansions --- plugins/20_events/hook | 2 +- plugins/common/functions | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/20_events/hook b/plugins/20_events/hook index 4688dd8bc..0f21da9fb 100755 --- a/plugins/20_events/hook +++ b/plugins/20_events/hook @@ -2,4 +2,4 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x source "$(dirname $0)/../common/functions" -[[ ! "$DOKKU_EVENTS" ]] || dokku_log_pluginhook_call "$(basename $0)" $@ +[[ ! "$DOKKU_EVENTS" ]] || dokku_log_pluginhook_call "$(basename $0)" "$@" diff --git a/plugins/common/functions b/plugins/common/functions index 2752dfc1d..c7afd2bc1 100755 --- a/plugins/common/functions +++ b/plugins/common/functions @@ -91,7 +91,7 @@ dokku_log_fail() { } dokku_log_event() { - logger -t dokku -i -- $@ + logger -t dokku -i -- "$@" } dokku_log_pluginhook_call() { From 8e7916131c9f0dfe7bee1188cc68602e5ea8ea28 Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Fri, 26 Jun 2015 15:25:57 +0100 Subject: [PATCH 05/18] Double quote $@ in plugins/20_events/install too --- plugins/20_events/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/20_events/install b/plugins/20_events/install index f2cef282f..58338209f 100755 --- a/plugins/20_events/install +++ b/plugins/20_events/install @@ -18,6 +18,6 @@ EOF service rsyslog reload fi -[[ "$DOKKU_EVENTS" ]] && dokku_log_pluginhook_call "$(basename $0)" $@ +[[ "$DOKKU_EVENTS" ]] && dokku_log_pluginhook_call "$(basename $0)" "$@" exit 0 From 466670d80416bf2b10dc9a6bbac46a475ee045d9 Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Fri, 26 Jun 2015 16:37:01 +0100 Subject: [PATCH 06/18] Quote `find' statement to prevent word splitting This should fix ShellCheck SC2046 error. --- plugins/20_events/commands | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/20_events/commands b/plugins/20_events/commands index 377fee86f..45c6004e2 100755 --- a/plugins/20_events/commands +++ b/plugins/20_events/commands @@ -28,8 +28,9 @@ case "$1" in events:list) if [[ "$DOKKU_EVENTS" ]]; then + logged="$(find $(dirname $0) -type l -printf '%f ' | sort)" dokku_col_log_info2_quiet "Events currently logged" - for hook in $(find $(dirname $0) -type l -printf "%f " | sort) ; do + for hook in $logged ; do dokku_col_log_msg "$hook" done else From da3b00a89493b53fbe9c6fc9053a9ee4db9f1723 Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Fri, 26 Jun 2015 17:57:43 +0100 Subject: [PATCH 07/18] Get rid of cruft leftover --- plugins/20_events/commands | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/20_events/commands b/plugins/20_events/commands index 45c6004e2..eda884078 100755 --- a/plugins/20_events/commands +++ b/plugins/20_events/commands @@ -2,8 +2,6 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x source "$(dirname $0)/../common/functions" -find "$l_plugin_dir" -type l -printf "%f " | sort - case "$1" in events) if [[ -f $DOKKU_EVENTS_LOGFILE ]] ; then From fb5d3a06f004b06bef1626b2e5b8267406e02d4a Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Fri, 26 Jun 2015 18:01:40 +0100 Subject: [PATCH 08/18] Attempt to fix SC2046 --- plugins/20_events/commands | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/20_events/commands b/plugins/20_events/commands index eda884078..62f0ea475 100755 --- a/plugins/20_events/commands +++ b/plugins/20_events/commands @@ -2,6 +2,8 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x source "$(dirname $0)/../common/functions" +PLUGIN_DIR="$(dirname $0)" + case "$1" in events) if [[ -f $DOKKU_EVENTS_LOGFILE ]] ; then @@ -26,7 +28,7 @@ case "$1" in events:list) if [[ "$DOKKU_EVENTS" ]]; then - logged="$(find $(dirname $0) -type l -printf '%f ' | sort)" + logged="$(find $PLUGIN_DIR -type l -printf '%f ' | sort)" dokku_col_log_info2_quiet "Events currently logged" for hook in $logged ; do dokku_col_log_msg "$hook" From 16e400167711c5e1fa5725b887988a8d8ae8eb27 Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Sat, 27 Jun 2015 10:20:07 +0100 Subject: [PATCH 09/18] Restart rsyslog once installed Seems that a mere reload doesn't work. --- plugins/20_events/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/20_events/install b/plugins/20_events/install index 58338209f..384154bc4 100755 --- a/plugins/20_events/install +++ b/plugins/20_events/install @@ -15,7 +15,7 @@ if [[ ! -f "$DOKKU_RSYSLOG_FILTER" ]]; then cat >"$DOKKU_RSYSLOG_FILTER" < Date: Sun, 28 Jun 2015 23:25:50 +0100 Subject: [PATCH 10/18] Handle log rotation As requested by @josegonzalez. --- plugins/20_events/install | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/plugins/20_events/install b/plugins/20_events/install index 384154bc4..1d352792b 100755 --- a/plugins/20_events/install +++ b/plugins/20_events/install @@ -3,6 +3,9 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x source "$(dirname $0)/../common/functions" DOKKU_RSYSLOG_FILTER=/etc/rsyslog.d/99-dokku.conf +DOKKU_LOGROTATE_FILE=/etc/logrotate.d/dokku + +flag_rsyslog_needs_restart=n if [[ ! -f "$DOKKU_EVENTS_LOGFILE" ]]; then touch "$DOKKU_EVENTS_LOGFILE" @@ -15,6 +18,29 @@ if [[ ! -f "$DOKKU_RSYSLOG_FILTER" ]]; then cat >"$DOKKU_RSYSLOG_FILTER" <"$DOKKU_LOGROTATE_FILE" </dev/null 2>&1 || true + endscript + create 664 syslog dokku +} +EOF + flag_rsyslog_needs_restart=y +fi + +if [[ "$flag_rsyslog_needs_restart" == "y" ]]; then service rsyslog restart fi From b380bde9f3ff40a160a899cdc90672da79912dcd Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Tue, 30 Jun 2015 12:05:35 +0100 Subject: [PATCH 11/18] Add small test suite for events logging --- tests/unit/events.bats | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tests/unit/events.bats diff --git a/tests/unit/events.bats b/tests/unit/events.bats new file mode 100644 index 000000000..a07ea5ef2 --- /dev/null +++ b/tests/unit/events.bats @@ -0,0 +1,36 @@ +#!/usr/bin/env bats + +load test_helper + +setup() { + create_app +} + +teardown() { + destroy_app +} + +@test "(events) check conffiles" { + test -f /etc/logrotate.d/dokku + echo "output: "$output + echo "status: "$status + assert_success + test -f /etc/rsyslog.d/99-dokku.conf + echo "output: "$output + echo "status: "$status + assert_success + stats -c '%U:%G:%a' /var/log/dokku.log + echo "output: "$output + echo "status: "$status + assert_output "syslog:dokku:644" +} + +@test "(events) log commands" { + run dokku events:on + deploy_app + run dokku events + echo "output: "$output + echo "status: "$status + assert_success + run dokku events:off +} From b24e78257cb1d8d02a2411cc3a552954349c92ba Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Tue, 30 Jun 2015 17:34:15 +0100 Subject: [PATCH 12/18] Fix horrible typo --- tests/unit/events.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/events.bats b/tests/unit/events.bats index a07ea5ef2..bbd552c52 100644 --- a/tests/unit/events.bats +++ b/tests/unit/events.bats @@ -19,7 +19,7 @@ teardown() { echo "output: "$output echo "status: "$status assert_success - stats -c '%U:%G:%a' /var/log/dokku.log + stat -c '%U:%G:%a' /var/log/dokku.log echo "output: "$output echo "status: "$status assert_output "syslog:dokku:644" From efc55bd195b79d97a964a835174a9d12fe2ae6fb Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Wed, 1 Jul 2015 09:15:08 +0100 Subject: [PATCH 13/18] Attempt to fix circleci build failure Parse output and check return code after running test commands with the 'run' utility. --- tests/unit/events.bats | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/unit/events.bats b/tests/unit/events.bats index bbd552c52..eed3ff94c 100644 --- a/tests/unit/events.bats +++ b/tests/unit/events.bats @@ -11,15 +11,15 @@ teardown() { } @test "(events) check conffiles" { - test -f /etc/logrotate.d/dokku + run bash -c "test -f /etc/logrotate.d/dokku" echo "output: "$output echo "status: "$status assert_success - test -f /etc/rsyslog.d/99-dokku.conf + run bash -c "test -f /etc/rsyslog.d/99-dokku.conf" echo "output: "$output echo "status: "$status assert_success - stat -c '%U:%G:%a' /var/log/dokku.log + run bash -c "stat -c '%U:%G:%a' /var/log/dokku.log" echo "output: "$output echo "status: "$status assert_output "syslog:dokku:644" From 1d4b9a19a89a4696067a7a2928837d4c8ca4716c Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Wed, 1 Jul 2015 10:11:28 +0100 Subject: [PATCH 14/18] Fix test case expected output --- tests/unit/events.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/events.bats b/tests/unit/events.bats index eed3ff94c..366cf53d9 100644 --- a/tests/unit/events.bats +++ b/tests/unit/events.bats @@ -22,7 +22,7 @@ teardown() { run bash -c "stat -c '%U:%G:%a' /var/log/dokku.log" echo "output: "$output echo "status: "$status - assert_output "syslog:dokku:644" + assert_output "syslog:dokku:664" } @test "(events) log commands" { From 91c691a806fcd46f31b93da93b474c05035eef12 Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Wed, 1 Jul 2015 18:25:11 +0100 Subject: [PATCH 15/18] Create dokku's /var/log/dokku/ private namespace Rename dokku.log to events.log. Refresh tests accordingly. --- dokku | 3 ++- plugins/20_events/install | 7 ++++++- tests/unit/events.bats | 6 +++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/dokku b/dokku index b11e051ec..4252f831f 100755 --- a/dokku +++ b/dokku @@ -10,7 +10,8 @@ export PLUGIN_PATH=${PLUGIN_PATH:="/var/lib/dokku/plugins"} export DOKKU_NOT_IMPLEMENTED_EXIT=10 export DOKKU_VALID_EXIT=0 -export DOKKU_EVENTS_LOGFILE=${DOKKU_EVENTS_LOGFILE:="/var/log/dokku.log"} +export DOKKU_LOGS_DIR=${DOKKU_LOGS_DIR:="/var/log/dokku"} +export DOKKU_EVENTS_LOGFILE=${DOKKU_EVENTS_LOGFILE:="$DOKKU_LOGS_DIR/events.log"} source "$PLUGIN_PATH/common/functions" diff --git a/plugins/20_events/install b/plugins/20_events/install index 1d352792b..494892bb5 100755 --- a/plugins/20_events/install +++ b/plugins/20_events/install @@ -7,6 +7,11 @@ DOKKU_LOGROTATE_FILE=/etc/logrotate.d/dokku flag_rsyslog_needs_restart=n +# This can be done unconditionally as mkdir -p +# exits gracefully if the path already exists +mkdir -m 775 -p "$DOKKU_LOGS_DIR" +chown syslog:dokku "$DOKKU_LOGS_DIR" + if [[ ! -f "$DOKKU_EVENTS_LOGFILE" ]]; then touch "$DOKKU_EVENTS_LOGFILE" # chown syslog:root might not work on SUSE @@ -23,7 +28,7 @@ fi if [[ ! -f "$DOKKU_LOGROTATE_FILE" ]]; then cat >"$DOKKU_LOGROTATE_FILE" < Date: Wed, 1 Jul 2015 19:20:53 +0100 Subject: [PATCH 16/18] Fix double negative statement This is mostly for consistency with its own install script. --- plugins/20_events/hook | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/20_events/hook b/plugins/20_events/hook index 0f21da9fb..e3cc0f923 100755 --- a/plugins/20_events/hook +++ b/plugins/20_events/hook @@ -2,4 +2,4 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x source "$(dirname $0)/../common/functions" -[[ ! "$DOKKU_EVENTS" ]] || dokku_log_pluginhook_call "$(basename $0)" "$@" +[[ "$DOKKU_EVENTS" ]] && dokku_log_pluginhook_call "$(basename $0)" "$@" From 89d1acaa38dc91a3511bad71a01102e4f60261d6 Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Wed, 1 Jul 2015 19:47:38 +0100 Subject: [PATCH 17/18] Revert "Fix double negative statement" This reverts commit 54ed3c1f2b6abb4860912fa2acece76e1341cfba. --- plugins/20_events/hook | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/20_events/hook b/plugins/20_events/hook index e3cc0f923..0f21da9fb 100755 --- a/plugins/20_events/hook +++ b/plugins/20_events/hook @@ -2,4 +2,4 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x source "$(dirname $0)/../common/functions" -[[ "$DOKKU_EVENTS" ]] && dokku_log_pluginhook_call "$(basename $0)" "$@" +[[ ! "$DOKKU_EVENTS" ]] || dokku_log_pluginhook_call "$(basename $0)" "$@" From 0ed0201b90f5c68df706e2828ee253525514a2e9 Mon Sep 17 00:00:00 2001 From: Alessio Treglia Date: Wed, 1 Jul 2015 19:48:09 +0100 Subject: [PATCH 18/18] Use d-neg condition to prevent unexpected failures --- plugins/20_events/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/20_events/install b/plugins/20_events/install index 494892bb5..62435390f 100755 --- a/plugins/20_events/install +++ b/plugins/20_events/install @@ -49,6 +49,6 @@ if [[ "$flag_rsyslog_needs_restart" == "y" ]]; then service rsyslog restart fi -[[ "$DOKKU_EVENTS" ]] && dokku_log_pluginhook_call "$(basename $0)" "$@" +[[ ! "$DOKKU_EVENTS" ]] || dokku_log_pluginhook_call "$(basename $0)" "$@" exit 0