/cron.daily/popularity-contest
http://github.com/brinkman83/bashrc · Shell · 96 lines · 69 code · 17 blank · 10 comment · 22 complexity · e5712443c40fa3780de7ae77692caeb7 MD5 · raw file
- #!/bin/sh
- # don't run if this package is removed but not purged
- if [ ! -f /usr/sbin/popularity-contest ]; then
- exit 0
- fi
- unset MAILFROM
- unset MAILTO
- unset MY_HOSTID
- unset PARTICIPATE
- unset SUBMITURLS
- unset USEHTTP
- # get configuration information
- . /usr/share/popularity-contest/default.conf
- . /etc/popularity-contest.conf
- # don't run if MAILTO address is blank, and not configured to use HTTP POST!
- if [ -z "$MAILTO" ] && [ "yes" != "$USEHTTP" ]; then exit 0; fi
- # don't run if PARTICIPATE is "no" or unset!
- [ "$PARTICIPATE" = "no" ] || [ -z "$PARTICIPATE" ] && exit 0
- if [ -n "$HTTP_PROXY" ]; then
- export http_proxy="$HTTP_PROXY";
- fi
- # Only run on the given day, to spread the load on the server a bit
- if [ "$DAY" ] && [ "$DAY" != "$(date +%w)" ] ; then
- exit 0
- fi
- # keep old logs
- cd /var/log
- umask 022
- savelog -c 7 popularity-contest >/dev/null
- POPCON=/var/log/popularity-contest
- run_popcon()
- {
- su -s /bin/sh -c "/usr/sbin/popularity-contest" nobody
- }
- do_sendmail()
- {
- if [ -n "$MAILFROM" ]; then
- sendmail -oi -f "$MAILFROM" $MAILTO
- else
- sendmail -oi $MAILTO
- fi
- }
- # generate the popularity contest data
- run_popcon > $POPCON
- SUBMITTED=no
- # try to post the report through http POST
- if [ "$SUBMITURLS" ] && [ "yes" = "$USEHTTP" ]; then
- for URL in $SUBMITURLS ; do
- if setsid /usr/share/popularity-contest/popcon-upload \
- -u $URL -f $POPCON -C 2>/dev/null ; then
- SUBMITTED=yes
- else
- logger -t popularity-contest "unable to submit report to $URL."
- fi
- done
- fi
- # try to email the popularity contest data
- if [ yes != "$SUBMITTED" ] && [ -n "$MAILTO" ]; then
- if [ -x "`which sendmail 2>/dev/null`" ]; then
- (
- if [ -n "$MAILFROM" ]; then
- echo "From: <$MAILFROM>"
- echo "Sender: <$MAILFROM>"
- fi
- echo "To: $MAILTO"
- echo "Subject: popularity-contest submission"
- echo "MIME-Version: 1.0"
- echo "Content-Type: text/plain"
- echo
- cat $POPCON
- ) | do_sendmail
- SUBMITTED=yes
- else
- logger -t popularity-contest "unable to submit report using sendmail."
- fi
- fi
- if [ "yes" != "$SUBMITTED" ] ; then
- logger -t popularity-contest "unable to submit report."
- fi