cinder/tools/config/check_uptodate.sh
Eric Harney 683dd65d41 Test whether sample config generation works
Adds --checkonly to tools/config/check_uptodate.sh.

This allows verifying that a configuration file was
generated.

We have had a number of issues introduced which
have caused config file generation to fail since we
removed the sample config file check in the gate.
This does not add back checks to ensure that the file
has been updated, it only checks to ensure that it is
still possible to update the sample file.

Change-Id: I2e0e376fbdec5a1bb584c6739231649e1d0f5d8e
2015-08-18 17:31:01 -04:00

45 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
CHECKONLY=0
if [ "$1" == "--checkonly" ]; then
CHECKONLY=1
fi
PROJECT_NAME=${PROJECT_NAME:-cinder}
CFGFILE_NAME=${PROJECT_NAME}.conf.sample
TEMPDIR=`mktemp -d /tmp/${PROJECT_NAME}.XXXXXX`
trap "rm -rf $TEMPDIR" EXIT
tools/config/generate_sample.sh -b ./ -p ${PROJECT_NAME} -o ${TEMPDIR}
# generate_sample.sh may return 0 even when it fails.
if [ $CHECKONLY -eq 1 ]; then
# Check whether something was generated.
if [ ! -s ${TEMPDIR}/${CFGFILE_NAME} ]; then
echo "Failed to generate ${CFGFILE_NAME}."
exit 1
fi
else
if [ -e etc/${PROJECT_NAME}/${CFGFILE_NAME} ]; then
CFGFILE=etc/${PROJECT_NAME}/${CFGFILE_NAME}
elif [ -e etc/${CFGFILE_NAME} ]; then
CFGFILE=etc/${CFGFILE_NAME}
else
echo "${0##*/}: can not find config file"
exit 1
fi
if ! diff -u ${TEMPDIR}/${CFGFILE_NAME} ${CFGFILE}
then
echo "${0##*/}: ${PROJECT_NAME}.conf.sample is not up to date."
echo "${0##*/}: Please run ${0%%${0##*/}}generate_sample.sh from within a VENV."
echo " \'source .venv/bin/activate; generate_sample.sh\'"
echo "OR simply run tox genconfig"
echo " \'tox -egenconfig\'"
exit 1
fi
fi