|  | #!/bin/bash | 
|  |  | 
|  | # The following two methods are ripped from alpine's syslog-ng package. | 
|  | # This allows us (and a user) to customize the config with snippets. | 
|  | grep_syslog_conf_entries() { | 
|  | local section="$1" FN filelist | 
|  | grep -v '^#' /etc/syslog-ng/syslog-ng-${section}.std | 
|  | filelist=$(find /etc/syslog-ng/ -maxdepth 1 -type f -name "syslog-ng-${section}.*" | grep -Ev ".backup|.std|~") | 
|  | if [ $? -eq 0 ] | 
|  | then | 
|  | for FN in ${filelist} | 
|  | do | 
|  | grep -v '^#' $FN | 
|  | done | 
|  | fi | 
|  | } | 
|  |  | 
|  | update() { | 
|  | local fname='/etc/syslog-ng/syslog-ng.conf' | 
|  | local f_tmp="/etc/syslog-ng/syslog-ng.conf.$$" | 
|  | for ng_std in options source destination filter log | 
|  | do | 
|  | [ -f /etc/syslog-ng/syslog-ng-${ng_std}.std ] || exit 1 | 
|  | done | 
|  | { | 
|  | # create options entries | 
|  | grep_syslog_conf_entries plugins | 
|  | echo "options {" | 
|  | grep_syslog_conf_entries options | 
|  | echo "};" | 
|  | # create source entries | 
|  | echo "source s_all {" | 
|  | grep_syslog_conf_entries source | 
|  | echo "};" | 
|  | # create destination entries | 
|  | grep_syslog_conf_entries destination | 
|  | # create filter entries | 
|  | grep_syslog_conf_entries filter | 
|  | # create log entries | 
|  | grep_syslog_conf_entries log | 
|  | } > $f_tmp | 
|  | cp -p $f_tmp $fname | 
|  | rm -f $f_tmp | 
|  | } | 
|  |  | 
|  | update | 
|  |  | 
|  | echo Starting "$@" | 
|  | exec "$@" |