#!/bin/bash # # autodist autoupdate hourly cron script # (c) 2008-2013 by Silvan Calarco # . /etc/autodist/config . /etc/sysconfig/autoport ME=`basename $0` [ "$$" == "`pidof -x $ME`" -o "$$" == "`pidof -x 60-autodist-update`" ] || { # echo "Warning: $ME script already running; exiting." exit 0 } PIDFILE=/var/run/autodist/autodist.pid HOUR=`date +%H` [ "`uname -m`" = "x86_64" ] && HOST_IS_X86_64=1 function pid_check() { [ -e $PIDFILE ] && PIDCHECK=`cat $PIDFILE` [ "$PIDCHECK" -a -e /proc/$PIDCHECK ] && { echo "Error: an autodist process is already running; exiting for safety." exit 0 } } for i in `seq 0 ${#AUTOPORT_ARCH[*]}`; do for r in ${AUTOPORT_REPOSITORIES[$i]}; do [ "${AUTOPORT_ARCH[$i]}" ] || continue [ "${AUTOPORT_DISABLE[$i]}" -a "${AUTOPORT_DISABLE[$i]}" != "0" ] && continue if [ "$HOST_IS_X86_64" -a "${AUTOPORT_ARCH[$i]}" != "x86_64" ]; then CMD_PREFIX=linux32 else CMD_PREFIX= fi # TODO: parametrize DISTROMATIC_REPOSITORY and following log files DISTROMATIC_REPOSITORY=devel-future LOGFILE=/var/autodist/log/autodist.log LASTLOGFILE=/var/autodist/log/autodist-last.log REPLOGFILE=$LOCAL_REPS_BASE_DIR/$r/autodist.log REPLASTLOGFILE=$LOCAL_REPS_BASE_DIR/$r/autodist-last.log if [ "${AUTOPORT_UPDATE[$i]}" ]; then pid_check distromatic -q -t $DISTROMATIC_REPOSITORY --gensrcpkglist > $LOCAL_REPS_BASE_DIR/$DISTROMATIC_REPOSITORY/srcpkglist 2>/dev/null pid_check autodist-upstream-updates -q -h -u -r $DISTROMATIC_REPOSITORY -o $r \ > $LOCAL_REPS_BASE_DIR/distromatic/$r/_popular.html pid_check [ -e $LOGFILE ] && mv $LOGFILE $LASTLOGFILE su -l autodist -c "$CMD_PREFIX autodist -a --server $r" > $LOGFILE [ -e $REPLOGFILE ] && mv $REPLOGFILE $REPLASTLOGFILE cp $LOGFILE $REPLOGFILE fi done done