#!/bin/bash
set -e
set -o pipefail
GIT=${GIT:="git"}
repoRoot="$("$GIT" rev-parse --show-toplevel)"
cd "$repoRoot"/tools/codegen || exit 255
include="$repoRoot/include"
origin="$include.orig"
[ -f "$origin" ] && chmod -R u+w "$origin"
rm -rf "$origin"
cp -r "$include" "$origin"
chmod -R u-w "$origin"
USER_SHELL=${USER_SHELL:="$(getent passwd | awk -F: -v user="$USER" '$1 == user {print $NF}')"}
echo "Make your change in include directory then exit shell"
cd "$repoRoot"
"$USER_SHELL"
diff -ruN "${origin#"$repoRoot/"}" "${include#"$repoRoot/"}" \
>"$repoRoot"/tools/codegen/fix.patch &&
exit 1
chmod -R u+w "$origin"
rm -rf "$origin"