1#!/bin/bash -e
2QUIET_EXIT_CODE=0
3function quiet_unless_fail {
4    # suppresses function output unless exit status is != 0
5    OUTPUT_FILE=$(tempfile)
6    #/bin/rm --force /tmp/suppress.out 2>/dev/null
7    EXECMD=${1+"$@"}
8    $EXECMD > ${OUTPUT_FILE} 2>&1
9    QUIET_EXIT_CODE=$?
10    if [ ${QUIET_EXIT_CODE} -ne 0 ]; then
11	cat ${OUTPUT_FILE}
12	echo "The following command exited with exit status ${QUIET_EXIT_CODE}: ${EXECMD}"
13	/bin/rm ${OUTPUT_FILE}
14    fi
15    /bin/rm ${OUTPUT_FILE}
16}
17
18if [ -f index.ipynb ]; then
19    sed -i.bak0 's/ipynb/html/' index.ipynb
20    sed -i.bak1 's/filepath=index.html/filepath=index.ipynb/' index.ipynb  # mybinder link fix
21fi
22set +e
23for dir in $@; do
24    cd $dir
25    for fname in *.ipynb; do
26        echo "rendering ${fname}..."
27        quiet_unless_fail jupyter nbconvert --debug --to=html --ExecutePreprocessor.enabled=True --ExecutePreprocessor.timeout=300 "${fname}" \
28            | grep -v -e "^\[NbConvertApp\] content: {'data':.*'image/png'"
29        if [ ${QUIET_EXIT_CODE} -ne 0 ]; then
30            exit ${QUIET_EXIT_CODE}
31        fi
32    done
33    cd -
34done
35set -e
36cd examples/
37../scripts/render_index.sh *.html
38