96 lines
3.1 KiB
Bash
96 lines
3.1 KiB
Bash
|
#!/bin/bash
|
||
|
# -*- mode: sh; fill-column: 75; tab-width: 8; coding: utf-8-unix -*-
|
||
|
|
||
|
prog=$( basename $0 .bash )
|
||
|
. /usr/local/bin/usr_local_tput.bash || exit 2
|
||
|
PREFIX=/usr/local
|
||
|
ROLE=base
|
||
|
|
||
|
# The idea here is to run ansible_local.bash --tags daily
|
||
|
# and then use this to do the parsing and throwing errors based on the output.
|
||
|
# This was the ansible run can be free from erroring and this can be
|
||
|
# run repeatedly anytime outside of ansible to deal with the issues raised.
|
||
|
# It is also run at the end of ansible_local.bash --tags daily to raise the issues.
|
||
|
|
||
|
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||
|
[ -f /usr/local/etc/testforge/testforge.bash ] && . /usr/local/etc/testforge/testforge.bash
|
||
|
|
||
|
. /usr/local/etc/local.d/local.bash
|
||
|
|
||
|
MYID=$( id -u )
|
||
|
[ $MYID -eq 0 ] || { ERROR $prog must be run as root $MYID ; exit 1 ; }
|
||
|
LOG_DIR=/usr/local/tmp
|
||
|
|
||
|
ly=daily
|
||
|
errs=0
|
||
|
warns=0
|
||
|
|
||
|
# sh /usr/local/bin/base_hourly.bash
|
||
|
LOG_DIR=/usr/local/tmp/$ly
|
||
|
[ -d "$LOG_DIR" ] || mkdir -p "$LOG_DIR"
|
||
|
ELOG=$LOG_DIR/E${prog}_${ly}$$.log
|
||
|
WLOG=$LOG_DIR/W${prog}_${ly}$$.log
|
||
|
OUT=$LOG_DIR/O${prog}_${ly}$$.log
|
||
|
rm -f $LOG_DIR/*${prog}_${ly}*.log
|
||
|
|
||
|
if [ -f /var/log/dmesg.log ] ; then
|
||
|
grep 'IOMMU enabled' /var/log/dmesg.log || WARN NOT 'IOMMU enabled' | tee -a $WLOG
|
||
|
fi
|
||
|
|
||
|
cp /dev/null /var/log/dirmngr.log
|
||
|
/usr/local/bin/base_gnupg_test.bash || ERROR $retval /usr/local/bin/base_gnupg_test.bash >> $WLOG
|
||
|
[ -d /etc/portage ] && \
|
||
|
grep 'ERR 219 Server indicated a failure' /var/log/dirmngr.log >> $ELOG
|
||
|
|
||
|
[ -f /usr/local/etc/testforge/testforge.bash ] && \
|
||
|
. /usr/local/etc/testforge/testforge.bash
|
||
|
|
||
|
[ -z "$UPTMP" ] && UPTMP=$PREFIX/tmp
|
||
|
if [ -d /etc/apt -a -d /o/Cache/Apt/Devuan/4 ] ; then
|
||
|
[ -z "$TESTF_UBUNTU16_VAR_APT_ARCHIVES" ] && \
|
||
|
TESTF_UBUNTU16_VAR_APT_ARCHIVES=/o/Cache/Apt/Devuan/4
|
||
|
[ -z "BOX_USER_NAME" ] && BOX_USER_NAME=devuan
|
||
|
else
|
||
|
[ -z "BOX_USER_NAME" ] && BOX_USER_NAME=vagrant
|
||
|
fi
|
||
|
if [ -d /o/Cache/Pip/ ] ; then
|
||
|
[ -z "$HOSTVMS_BOXUSER_PIP_CACHE" ] && \
|
||
|
HOSTVMS_BOXUSER_PIP_CACHE=/o/Cache/Pip/
|
||
|
fi
|
||
|
|
||
|
# FixMe: bootstrap
|
||
|
elt=pip ; DBUG $elt
|
||
|
scripts="ansible ansible-playbook ansible-pull ansible-doc ansible-galaxy ansible-console ansible-connection ansible-vault"
|
||
|
for PYVER in 2 3 ; do
|
||
|
pfile=`python$PYVER.sh -c 'import pip; print(pip.__file__)'`
|
||
|
[ $? -eq 0 -a -f $pfile ] && continue
|
||
|
# /usr/local/sbin/bootstrap_pip.bash
|
||
|
pfile=`python$PYVER.sh -c 'import pip; print(pip.__file__)'`
|
||
|
[ $? -eq 0 -a -f $pfile ] || WARN pip $PYVER not installed - $pfile
|
||
|
for elt in $scripts ; do
|
||
|
[ -e $PREFIX/bin/$elt ] || { WARN installing $elt $PYVER ; }
|
||
|
done
|
||
|
done
|
||
|
|
||
|
elt=doctest3
|
||
|
if [ $MYID -ne 0 ] ; then
|
||
|
/var/local/bin/testforge_python_doctest3.bash \
|
||
|
/var/local/share/doc/txt/base3.txt \
|
||
|
> "$LOG_DIR"/$elt$$.log 2>&1 || ERROR $elt >> $ELOG
|
||
|
fi
|
||
|
|
||
|
[ -f $WLOG ] && warns=$( wc -l $WLOG | cut -f 1 -d ' ' )
|
||
|
[ $? -eq 0 -a $warns -ne 0 ] && \
|
||
|
WARN "$prog $warns $ly $prog warnings in $WLOG"
|
||
|
|
||
|
[ -f $ELOG ] && errs=$( wc -l $ELOG | cut -f 1 -d ' ' )
|
||
|
[ $? -eq 0 -a $errs -ne 0 ] && \
|
||
|
echo "ERROR: $prog $errs $ly $prog errors in $ELOG" && cat $ELOG
|
||
|
|
||
|
[ $errs -eq 0 ] && \
|
||
|
[ $warns -eq 0 ] && \
|
||
|
INFO "$prog No $ly errors" && \
|
||
|
rm -f $WLOG $ELOG $OUT
|
||
|
|
||
|
exit $errs
|