#!/bin/env sh
# townengine tooling interface

set +e

exe="$(basename $PWD)"
toolpath="$(dirname -- "${BASH_SOURCE[0]}")"
export TWNROOT=$(realpath "$toolpath"/../)
export TWNBUILDDIR=$(realpath "$toolpath"/../.build)

case "$1" in
    build    ) "$toolpath"/build.sh "${@:2}"
               ;;

    run      ) $0 build && ./$exe "${@:2}"
               ;;

    gdb      ) unset DEBUGINFOD_URLS
               $0 build && gdb --se=libgame.so -ex run --args "$(basename $PWD)" "${@:2}"
               ;;

    apitrace ) case "$2" in
        take ) export ASAN_OPTIONS=verify_asan_link_order=0
               export LD_PRELOAD="/usr/lib/libubsan.so /usr/lib/apitrace/wrappers/glxtrace.so $LD_PRELOAD"
               ./$exe "${@:3}"
               ;;

        show ) traces=( $exe.*.trace )
               trace=${traces[-1]}
               if [ "$trace" = "$exe.*.trace" ]; then
                   trace="$exe.trace"
               fi
               qapitrace ${trace}
               ;;
    esac
               ;;

    api-gen  ) "$toolpath"/gen_api_header.sh
               ;;

    *        ) echo "Unknown command."
               ;;
esac
