#!/bin/sh
# jenkins build helper script for pysim.  This is how we build on jenkins.osmocom.org
#
# environment variables:
# * WITH_MANUALS: build manual PDFs if set to "1"
# * PUBLISH: upload manuals after building if set to "1" (ignored without WITH_MANUALS = "1")
#

set -e

if [ ! -d "./pysim-testdata/" ] ; then
	echo "###############################################"
	echo "Please call from pySim-prog top directory"
	echo "###############################################"
	exit 1
fi

virtualenv -p python3 venv --system-site-packages
. venv/bin/activate
pip install pytlv
pip install pyyaml
pip install cmd2
pip install jsonpath-ng
pip install construct
pip install bidict

# Execute automatically discovered unit tests first
python -m unittest discover -v -s tests/

# Run pylint to find potential errors
# Ignore E1102: not-callable
#   pySim/filesystem.py: E1102: method is not callable (not-callable)
# Ignore E0401: import-error
#   pySim/utils.py:276: E0401: Unable to import 'Crypto.Cipher' (import-error)
#   pySim/utils.py:277: E0401: Unable to import 'Crypto.Util.strxor' (import-error)
pip install pylint
python -m pylint --errors-only \
	--disable E1102 \
	--disable E0401 \
	pySim *.py

# attempt to build documentation
pip install sphinx
pip install sphinxcontrib-napoleon
pip3 install -e 'git+https://github.com/osmocom/sphinx-argparse@master#egg=sphinx-argparse'
(cd docs && make html latexpdf)

# run the test with physical cards
cd pysim-testdata
../tests/pysim-test.sh

if [ "$WITH_MANUALS" = "1" ] && [ "$PUBLISH" = "1" ]; then
	make -C "$base/docs" publish
fi
