#!/bin/bash

set -e # abort on error

# get script directory
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
REPO_DIR="$SCRIPT_DIR/.."

mkdir -p $REPO_DIR/Core/src/Propagator/codegen
mkdir -p $REPO_DIR/Core/src/Propagator/detail/codegen

# run code generation
export PYTHONPATH=$REPO_DIR/codegen:$PYTHONPATH
python $REPO_DIR/codegen/generate_sympy_stepper.py > $REPO_DIR/Core/src/Propagator/codegen/sympy_stepper_math.hpp
python $REPO_DIR/codegen/generate_sympy_jac.py > $REPO_DIR/Core/src/Propagator/detail/codegen/sympy_jac_math.hpp
python $REPO_DIR/codegen/generate_sympy_cov.py > $REPO_DIR/Core/src/Propagator/detail/codegen/sympy_cov_math.hpp

_format=${CLANG_FORMAT_BINARY:-clang-format}
$_format --version
$_format -i -style=file $REPO_DIR/Core/src/Propagator/codegen/sympy_stepper_math.hpp
$_format -i -style=file $REPO_DIR/Core/src/Propagator/detail/codegen/sympy_jac_math.hpp
$_format -i -style=file $REPO_DIR/Core/src/Propagator/detail/codegen/sympy_cov_math.hpp

if ! [ -z $CI ] || ! [ -z $GITHUB_ACTIONS ]; then
  mkdir changed
  for f in $(git diff --name-only); do
    cp --parents $f changed
  done
fi

echo "\033[32mINFO\033[0m"\
     "codegen done"

set +e
git diff --exit-code --stat
result=$?

exit $result
