#!/bin/bash
###############################################################################
# BRLTTY - A background process providing access to the console screen (when in
#          text mode) for a blind person using a refreshable braille display.
#
# Copyright (C) 1995-2023 by The BRLTTY Developers.
#
# BRLTTY comes with ABSOLUTELY NO WARRANTY.
#
# This is free software, placed under the terms of the
# GNU Lesser General Public License, as published by the Free Software
# Foundation; either version 2.1 of the License, or (at your option) any
# later version. Please see the file LICENSE-LGPL for details.
#
# Web Page: http://brltty.app/
#
# This software is maintained by Dave Mielke <dave@mielke.cc>.
###############################################################################

. "`dirname "${0}"`/prologue.sh"
command=brltty

handleInitialHelpOption "${@}" <<END-OF-HELP
Run ${command} from its build tree.

Syntax: ${programName} {-h | [-option ...]}

All of the options are passed through to ${command} itself.

See run-command -h for more details.
END-OF-HELP

setSourceRoot
setBuildRoot

export BRLTTY_TABLES_DIRECTORY="${sourceRoot}/Tables"
export BRLTTY_DRIVERS_DIRECTORY="${buildRoot}/lib"
export BRLTTY_LOCALE_DIRECTORY="${buildRoot}/Messages/locale"

exec "${programDirectory}/run-command" "${buildRoot}/Programs/${command}" -E "${@}"
exit "${?}"
