#!/bin/bash # Copyright (C) 2008 Richard Hughes # # Some material taken from yum-cron, Copyright 2007 Alec Habig # # Licensed under the GNU General Public License Version 2 # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. [ -f /etc/sysconfig/packagekit-background ] && . /etc/sysconfig/packagekit-background # are we disabled? if [ "$ENABLED" = "no" ]; then exit 0 fi # set default for SYSTEM_NAME [ -z "$SYSTEM_NAME" ] && SYSTEM_NAME=$(hostname) PKTMP=$(mktemp /var/run/packagekit-cron.XXXXXX) PKCON_OPTIONS="--background --noninteractive --plain" if [ "$UPDATE_OFFLINE" = "yes" ]; then ONLY_DOWNLOAD="--only-download" else ONLY_DOWNLOAD="" fi # wait a random amount of time to avoid hammering the servers [ -z "$SLEEP_MAX" ] && SLEEP_MAX=$RANDOM sleep $(( $RANDOM % $SLEEP_MAX + 1 )) # do action if [ "$CHECK_ONLY" = "yes" ]; then pkcon $PKCON_OPTIONS get-updates &> $PKTMP PKCON_RETVAL=$? else pkcon $PKCON_OPTIONS $ONLY_DOWNLOAD update &> $PKTMP PKCON_RETVAL=$? if [ $PKCON_RETVAL -eq 0 -a "$UPDATE_OFFLINE" = "yes" ]; then pkcon $PKCON_OPTIONS offline-trigger &>> $PKTMP fi fi # this is when something useful was done if [ $PKCON_RETVAL -ne 5 ]; then # send email if [ -n "$MAILTO" ]; then mail -s "System updates available: $SYSTEM_NAME" $MAILTO < $PKTMP else # default behavior is to use cron's internal mailing of output from cron-script cat $PKTMP fi fi rm -f $PKTMP