2015-06-26 13:14:04 +01:00
|
|
|
#!/usr/bin/env bash
|
2019-01-07 01:04:17 -05:00
|
|
|
set -eo pipefail
|
|
|
|
|
[[ $DOKKU_TRACE ]] && set -x
|
2015-09-09 18:27:42 -07:00
|
|
|
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
2015-06-26 13:14:04 +01:00
|
|
|
|
2020-02-10 02:40:59 -05:00
|
|
|
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
|
2015-06-28 23:25:50 +01:00
|
|
|
|
2020-02-10 02:40:59 -05:00
|
|
|
flag_rsyslog_needs_restart=n
|
2015-06-26 15:12:55 +01:00
|
|
|
|
2020-02-10 02:40:59 -05:00
|
|
|
# This can be done unconditionally as mkdir -p
|
|
|
|
|
# exits gracefully if the path already exists
|
|
|
|
|
mkdir -m 775 -p "$DOKKU_LOGS_DIR"
|
2015-10-25 00:01:12 -04:00
|
|
|
case "$DOKKU_DISTRO" in
|
2022-07-05 00:13:55 -04:00
|
|
|
arch | debian | raspbian)
|
2020-02-10 02:40:59 -05:00
|
|
|
chgrp dokku "$DOKKU_LOGS_DIR"
|
2015-10-25 00:01:12 -04:00
|
|
|
;;
|
|
|
|
|
*)
|
2020-02-10 02:40:59 -05:00
|
|
|
chown syslog:dokku "$DOKKU_LOGS_DIR"
|
2015-10-25 00:01:12 -04:00
|
|
|
;;
|
|
|
|
|
esac
|
2015-06-26 13:14:04 +01:00
|
|
|
|
2020-02-10 02:40:59 -05:00
|
|
|
if [[ ! -f "$DOKKU_EVENTS_LOGFILE" ]]; then
|
|
|
|
|
touch "$DOKKU_EVENTS_LOGFILE"
|
|
|
|
|
case "$DOKKU_DISTRO" in
|
2022-07-05 00:13:55 -04:00
|
|
|
arch | debian | raspbian)
|
2020-02-10 02:40:59 -05:00
|
|
|
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
|
2019-07-17 17:59:38 -04:00
|
|
|
:syslogtag, contains, "dokku-event" $DOKKU_EVENTS_LOGFILE
|
|
|
|
|
EOF
|
2020-02-10 02:40:59 -05:00
|
|
|
flag_rsyslog_needs_restart=y
|
|
|
|
|
fi
|
2019-07-17 17:59:38 -04:00
|
|
|
|
2020-02-10 02:40:59 -05:00
|
|
|
if [[ -f "$DOKKU_RSYSLOG_FILTER" ]] && ! grep -q "dokku-event" "$DOKKU_RSYSLOG_FILTER"; then
|
|
|
|
|
cat >"$DOKKU_RSYSLOG_FILTER" <<EOF
|
2019-07-17 17:59:38 -04:00
|
|
|
:syslogtag, contains, "dokku-event" $DOKKU_EVENTS_LOGFILE
|
2015-06-26 13:14:04 +01:00
|
|
|
EOF
|
2020-02-10 02:40:59 -05:00
|
|
|
flag_rsyslog_needs_restart=y
|
|
|
|
|
fi
|
2015-06-28 23:25:50 +01:00
|
|
|
|
2020-02-10 02:40:59 -05:00
|
|
|
if [[ ! -f "$DOKKU_LOGROTATE_FILE" ]]; then
|
|
|
|
|
cat >"$DOKKU_LOGROTATE_FILE" <<EOF
|
2015-07-01 18:25:11 +01:00
|
|
|
$DOKKU_LOGS_DIR/*.log {
|
2015-06-28 23:25:50 +01:00
|
|
|
daily
|
|
|
|
|
rotate 7
|
|
|
|
|
missingok
|
|
|
|
|
notifempty
|
|
|
|
|
su syslog dokku
|
|
|
|
|
compress
|
|
|
|
|
delaycompress
|
|
|
|
|
postrotate
|
|
|
|
|
reload rsyslog >/dev/null 2>&1 || true
|
|
|
|
|
endscript
|
|
|
|
|
create 664 syslog dokku
|
|
|
|
|
}
|
|
|
|
|
EOF
|
2016-01-09 11:35:47 +01:00
|
|
|
|
2021-10-28 02:41:10 -04:00
|
|
|
if [[ "$DOKKU_DISTRO" == "debian" ]] || [[ "$DOKKU_DISTRO" == "raspbian" ]]; then
|
2020-02-10 02:40:59 -05:00
|
|
|
sed -i 's/ syslog dokku$/ root dokku/g' $DOKKU_LOGROTATE_FILE
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
flag_rsyslog_needs_restart=y
|
2016-01-09 11:35:47 +01:00
|
|
|
fi
|
|
|
|
|
|
2020-02-10 02:40:59 -05:00
|
|
|
if [[ -f "$DOKKU_RSYSLOG_FILTER" && "$flag_rsyslog_needs_restart" == "y" ]]; then
|
|
|
|
|
service rsyslog restart
|
|
|
|
|
fi
|
2015-06-28 23:25:50 +01:00
|
|
|
|
2020-02-10 02:40:59 -05:00
|
|
|
[[ ! "$DOKKU_EVENTS" ]] || dokku_log_plugn_trigger_call "$(basename "$0")" "$@"
|
2015-06-26 13:14:04 +01:00
|
|
|
|
2020-02-10 02:40:59 -05:00
|
|
|
exit 0
|
|
|
|
|
}
|
2015-06-26 13:14:04 +01:00
|
|
|
|
2020-02-10 02:40:59 -05:00
|
|
|
trigger-events-install "$@"
|