#!/usr/bin/env bash
#
# run_magicnull.sh -- launch magic in batch / no-GUI mode (-dnull) from the build tree.
# Generated by configure from scripts/run_magicnull.sh.in.
#
# PURPOSE
#   Run the just-built magic with the null graphics device -- no X display, fully
#   scriptable -- without `make install`.  Like run_magic.sh it stages
#   ${builddir}/CAD_DIR (symlinks) on first run and exports CAD_ROOT so magic
#   finds its sys files and Tcl runtime there.  Uses the self-contained
#   "magicdnull" (no external wish/Tk needed).
#
# USAGE
#   ./run_magicnull.sh                                   # interactive Tcl prompt
#   ./run_magicnull.sh foo.mag                           # load a layout, batch
#   Interactive (tty) use sources the Tcl startup (magic.tcl) automatically from
#   CAD_ROOT.  For a non-interactive script piped on stdin, source it yourself:
#     printf 'source %s/magic.tcl\n<commands>\n' "$CAD_ROOT/magic/tcl" \
#         | ./run_magicnull.sh
#
# ENVIRONMENT OVERRIDES (all optional; each wins over the baked default)
#   CAD_ROOT    reuse an alternate runtime tree instead of staging $builddir/CAD_DIR
#   TCLSH       tclsh matching this build's Tcl (--with-tcl); for diagnostics
#   MAGIC_BUILDDIR MAGIC_SRCDIR  build/source tops (default: baked-in absolutes)
#   (WISH/MAGIC_WISH are irrelevant here -- there is no Tk in -dnull mode.)
#   Inherited values are sanity-checked; problems print as stderr warnings.
#   See magic_run_common.sh for the authoritative list and defaults.
set -eu
here="$(cd "$(dirname "$0")" && pwd)"
. "$here/magic_run_common.sh"

magic_require_built
magic_stage

exec "$MAGIC_TCL/magicdnull" -dnull -nowrapper "$@"
