#!/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\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 "$@"