Baja is a Synchronet module compiler and BASIC-like language for creating programmable command shells and modules for Synchronet versions 2 and 3.
Most Synchronet command shells are currently written in Baja.
Note:
The Programmable Command and Menu Structure implementation (basically, the compiled .bin
file interpreter) in the Synchronet Terminal Server is unlikely to be enhanced in the future. Synchronet's programability and extensibility is primarily through JavaScript modules and services and future script development should be focused there.
Baja source files (*.src
, *.inc
) are plain ASCII text files (IBM CP437 characters may also be used). The Baja language is documented here.
Baja source files are normally stored in the Synchronet exec
directory.
Baja source files may include other source files (usually named *.inc
) using the Baja !include
directive. Included files are normally stored in the same directory as the *.src
files but you can direct the Baja compiler to look in a different directory for included files by either defining the BAJAINCLUDE
environment variable or by using the '-i' command-line option.
By forcing the Baja compiler to look in a different directory (e.g. sbbs/exec
) for !include
d files, you could, for example, compile .src
files in your mods
directory which still !include
files from the exec
directory.
Synchronet modules written “in baja”, rely on the baja
utility to compile their “source” into an “executable” (interpretted) binary format (.bin
file).
Note: There is a corresponding unbaja utility, created by Deuce, for decompiling Baja .bin
files into somewhat readable (and modifiable) Baja source (.src
) files.
usage: baja [-opts] file[.src] opts: -d display debug during compile -c case sensitive variables, labels, and macros -o set output directory (e.g. -o/sbbs/exec) -i set include directory (e.g. -i/sbbs/exec) -q quiet mode (no banner) -p pause on error
To compile the Baja source file exec/default.src
into the executable module exec/default.bin
, from the Synchronet exec
directory, type:
baja default
The marketing name “Baja”, was coined by Dr. Seuss and inspired by vacations at our father's house in Baja California.