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().
55 lines
1.4 KiB
Bash
Executable File
55 lines
1.4 KiB
Bash
Executable File
#!/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<<EOF
|
|
events [-t] Show the last events (-t follows)
|
|
events:list List logged events
|
|
events:on Enable events logger
|
|
events:off Disable events logger
|
|
EOF
|
|
;;
|
|
|
|
*)
|
|
exit $DOKKU_NOT_IMPLEMENTED_EXIT
|
|
;;
|
|
|
|
esac
|
|
|