As briefly discussed in #1425, source the `common/functions` file via an absolute path, rather than determining the relative path by using `dirname`. 3rd-party plugins should follow suit and use the new `$PLUGIN_PATH` convention too.
56 lines
1.2 KiB
Bash
Executable File
56 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
|
source "$PLUGIN_PATH/common/functions"
|
|
|
|
PLUGIN_DIR="$(dirname $0)"
|
|
|
|
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
|
|
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"
|
|
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
|
|
|