#!/bin/bash

function usage {
    echo "Usage:"
    echo "\t$0 [build|install|clean]"
    echo
    echo "Check suitability for Xen build or install."
    echo "Exit with 0 if OK, 1 if not."
    echo "Prints only failed tests."
    echo
    echo "Calling with 'clean' removes generated files."
    exit 1
}

export PATH=${PATH}:/sbin:/usr/sbin

case $1 in
    build)
        check="CHECK-BUILD"
        info=".chkbuild"
        ;;
    install)
        check="CHECK-INSTALL"
        info=".chkinstall"
        ;;
    clean)
        rm -f .chkbuild .chkinstall
        exit 0
        ;;
    *)
        usage
        ;;
esac

failed=0

echo "Xen ${check} " $(date) > ${info}
for f in check_* ; do
    case $f in
        *~)
            continue
            ;;
        *)
            ;;
    esac
    if ! [ -x $f ] ; then
        continue
    fi
    if ! grep -q ${check} $f ; then
        continue
    fi
    echo ' ' >> ${info}
    echo "Checking $f" >> ${info}
    if ./$f 1>>${info} 2>&1 ; then
        echo OK >> ${info}
    else
        failed=1
        echo "FAILED $f"
        echo FAILED >> ${info}
    fi
done

echo >> ${info}

if [ "$failed" == "1" ] ; then
    echo "Checks failed. See `pwd`/${info} for details."
    echo "FAILED" >> ${info}
    exit 1
else
    echo "OK" >> ${info}
    exit 0
fi
