mirror of
https://github.com/dokku/dokku.git
synced 2025-12-15 19:47:42 +01:00
This makes standard use of shellcheck work without needing to provide extra configuration anywhere. Also remove use of inline 'shellcheck disable' calls that are already defined in the .shellcheckrc and don't need to be set inline.
89 lines
2.3 KiB
Bash
Executable File
89 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eo pipefail
|
|
[[ $DOKKU_TRACE ]] && set -x
|
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
|
|
|
trigger-events-install() {
|
|
declare desc="20_events install plugin trigger"
|
|
declare trigger="install"
|
|
DOKKU_RSYSLOG_FILTER_DIR=/etc/rsyslog.d
|
|
DOKKU_RSYSLOG_FILTER=$DOKKU_RSYSLOG_FILTER_DIR/99-dokku.conf
|
|
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"
|
|
case "$DOKKU_DISTRO" in
|
|
arch | debian | raspbian)
|
|
chgrp dokku "$DOKKU_LOGS_DIR"
|
|
;;
|
|
*)
|
|
chown syslog:dokku "$DOKKU_LOGS_DIR"
|
|
;;
|
|
esac
|
|
|
|
if [[ ! -f "$DOKKU_EVENTS_LOGFILE" ]]; then
|
|
touch "$DOKKU_EVENTS_LOGFILE"
|
|
case "$DOKKU_DISTRO" in
|
|
arch | debian | raspbian)
|
|
chgrp dokku "$DOKKU_EVENTS_LOGFILE"
|
|
;;
|
|
*)
|
|
# chown syslog:root might not work on SUSE
|
|
chown syslog:dokku "$DOKKU_EVENTS_LOGFILE"
|
|
;;
|
|
esac
|
|
chmod 664 "$DOKKU_EVENTS_LOGFILE"
|
|
fi
|
|
|
|
if [[ -d "$DOKKU_RSYSLOG_FILTER_DIR" && ! -f "$DOKKU_RSYSLOG_FILTER" ]]; then
|
|
cat >"$DOKKU_RSYSLOG_FILTER" <<EOF
|
|
:syslogtag, contains, "dokku-event" $DOKKU_EVENTS_LOGFILE
|
|
EOF
|
|
flag_rsyslog_needs_restart=y
|
|
fi
|
|
|
|
if [[ -f "$DOKKU_RSYSLOG_FILTER" ]] && ! grep -q "dokku-event" "$DOKKU_RSYSLOG_FILTER"; then
|
|
cat >"$DOKKU_RSYSLOG_FILTER" <<EOF
|
|
:syslogtag, contains, "dokku-event" $DOKKU_EVENTS_LOGFILE
|
|
EOF
|
|
flag_rsyslog_needs_restart=y
|
|
fi
|
|
|
|
if [[ ! -f "$DOKKU_LOGROTATE_FILE" ]]; then
|
|
cat >"$DOKKU_LOGROTATE_FILE" <<EOF
|
|
$DOKKU_LOGS_DIR/*.log {
|
|
daily
|
|
rotate 7
|
|
missingok
|
|
notifempty
|
|
su syslog dokku
|
|
compress
|
|
delaycompress
|
|
postrotate
|
|
reload rsyslog >/dev/null 2>&1 || true
|
|
endscript
|
|
create 664 syslog dokku
|
|
}
|
|
EOF
|
|
|
|
if [[ "$DOKKU_DISTRO" == "debian" ]] || [[ "$DOKKU_DISTRO" == "raspbian" ]]; then
|
|
sed -i 's/ syslog dokku$/ root dokku/g' $DOKKU_LOGROTATE_FILE
|
|
fi
|
|
|
|
flag_rsyslog_needs_restart=y
|
|
fi
|
|
|
|
if [[ -f "$DOKKU_RSYSLOG_FILTER" && "$flag_rsyslog_needs_restart" == "y" ]]; then
|
|
service rsyslog restart
|
|
fi
|
|
|
|
[[ ! "$DOKKU_EVENTS" ]] || dokku_log_plugn_trigger_call "$(basename "$0")" "$@"
|
|
|
|
exit 0
|
|
}
|
|
|
|
trigger-events-install "$@"
|