1 files modified
59 ■■■■■ changed files
scripts/mash_run.sh 59 ●●●●● patch | view | raw | blame | history
scripts/mash_run.sh
@@ -132,7 +132,7 @@
        ( $optionv ) && echo " -> [INFO] updating mash config ${tag}.mash"
        mv $conf ${MASH_CONF}/${tag}.mash
        ( $optionv ) && echo " -> [INFO] cleaning mash cache ${tag}.buildlist"
        rm $MASH_CACHE/${tag}.buildlist
        [ -f $MASH_CACHE/${tag}.buildlist ] && rm $MASH_CACHE/${tag}.buildlist
    else
        rm $conf
    fi
@@ -145,7 +145,7 @@
    if [ $? -gt 0 ] 
    then
        echo " -> [ERROR] mash run failed ${log}"
        rm -rf $MASH_CACHE/$tag.buildlist
        [ -f ${MASH_CACHE}/${tag}.buildlist ] && rm -rf $MASH_CACHE/${tag}.buildlist
    fi
    ( $optionv ) && echo " -> [INFO] mash run succeeded ${log}"
}
@@ -153,32 +153,39 @@
# Ensure the cache directory is available
[ ! -d $MASH_CACHE ] && mkdir -p $MASH_CACHE
# Ensure we do not have parallel runs
pidfile=/var/tmp/mash-run.pid
if [ -e $pidfile ]; then
    pid=`cat $pidfile`
    if kill -0 &> /dev/null $pid; then
        ( $optionv ) && echo "Mash is already running PID:$pid"
        exit 1
    else
        rm $pidfile &>/dev/null
    fi
if ( ! ${optiont} )
then
    # Ensure we do not have parallel runs
    pidfile=/var/tmp/mash-run.pid
    if [ -e $pidfile ]; then
        pid=`cat $pidfile`
        if kill -0 &> /dev/null $pid; then
            ( $optionv ) && echo "Mash is already running PID:$pid"
            exit 1
        else
            rm $pidfile &>/dev/null
        fi
    fi
    echo $$ > $pidfile
fi
echo $$ > $pidfile
# Cache target list as it cannot include unknown tag at this point
TARGETS=`mktemp`
${KOJI} list-targets --quiet > $TARGETS
for TAG in ${TAGS}
do
    ( $optionv ) && echo "Checking $TAG ..."
    ( $optionv ) && echo "Checking $TAG ..."
    ARCHES=""
    BUILDTAG=""
    LOG="${LOG_DIR}/mash.${TAG}.log"
    FAKETAG=${TAG/testing/candidate}
    FAKETAG=${FAKETAG/release/candidate}
    BUILDTAG=`${KOJI} list-targets --quiet | grep ${FAKETAG}| awk '{print $2}'`
    BUILDTAG=`grep ${FAKETAG} ${TARGETS} | awk '{print $2}'`
    [ ! -z "$BUILDTAG" ] && ARCHES=`${KOJI} taginfo ${BUILDTAG} | grep Arches | cut -d ":" -f 2-`
    [ -z "$ARCHES" ] && ARCHES="x86_64"
    [ -z "$ARCHES" ] && ARCHES="x86_64"
    # Mash not happy with i686 wants i386
    ARCHES=${ARCHES/i686/i386}
    mash_prepare "${TAG}" "${LOG}" "${ARCHES}"
    if [ ! -f $MASH_CACHE/$TAG.buildlist ]
    then
@@ -186,17 +193,17 @@
    else
            BUILDLIST=`mktemp`
            ${KOJI} list-tagged $TAG > $BUILDLIST
            diff $BUILDLIST $MASH_CACHE/$TAG.buildlist &>> $LOG
            if [ $? -eq 0 ]
            then
                echo " -> skipping. No new build in $TAG" &>> $LOG
                rm -rf $BUILDLIST
                continue
            else
                echo " -> updating cache for $TAG" &>> $LOG
                cp $BUILDLIST $MASH_CACHE/$TAG.buildlist
        diff $BUILDLIST $MASH_CACHE/$TAG.buildlist &>> $LOG
        if [ $? -eq 0 ]
        then
            echo " -> skipping. No new build in $TAG" &>> $LOG
            [ -f $BUILDLIST ] &&  rm -rf $BUILDLIST
            continue
        else
                       echo " -> updating cache for $TAG" &>> $LOG
            cp $BUILDLIST $MASH_CACHE/$TAG.buildlist
               fi
            rm -rf $BUILDLIST
        [ -f $BUILDLIST ] &&  rm -rf $BUILDLIST
    fi
    mash_run "${TAG}" "${LOG}" &
done