| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| util:baja [2010/03/01 14:08] – digitalman | util:baja [2018/06/29 21:41] (current) – Details about the include path env var/option and deprecation of Baja digital man |
|---|
| ====== Baja ====== | ====== Baja ====== |
| | |
| | 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 [[custom:command shell]]s are currently written in Baja. |
| | |
| | **Note**:\\ |
| | The //Programmable Command and Menu Structure// implementation (basically, the compiled ''.bin'' file interpreter) in the Synchronet [[server:Terminal]] Server is unlikely to be enhanced in the future. Synchronet's programability and extensibility is primarily through [[custom:JavaScript]] modules and services and future script development should be focused there. |
| | |
| | ===== Source ===== |
| | Baja source files (''*.src'', ''*.inc'') are plain ASCII text files (IBM CP437 characters may also be used). The Baja language is documented [[http://synchro.net/docs/baja.html|here]]. |
| | |
| | Baja source files are normally stored in the Synchronet ''[[dir:exec]]'' directory. |
| | |
| | ==== Includes ==== |
| | |
| | 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'' [[config:env|environment variable]] or by using the '-i' command-line option. |
| | |
| | By forcing the Baja compiler to look in a different directory (e.g. ''sbbs/[[dir:exec]]'') for ''!include''d files, you could, for example, compile ''.src'' files in your ''[[dir:mods]]'' directory which still ''!include'' files from the ''[[dir:exec]]'' directory. |
| | |
| | ===== Compiling ===== |
| | |
| | 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 [[util:unbaja]] utility, created by [[person:Deuce]], for decompiling Baja ''.bin'' files into somewhat readable (and modifiable) Baja source (''.src'') files. |
| | |
| | ===== Usage ===== |
| | <file> |
| | 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 |
| | </file> |
| | |
| | ==== Example ==== |
| | |
| | To compile the Baja source file ''[[dir:exec]]/default.src'' into the executable module ''[[dir:exec]]/default.bin'', from the Synchronet ''[[dir:exec]]'' directory, type: |
| | baja default |
| | |
| | |
| | ==== Trivia ==== |
| | The marketing name "Baja", was coined by [[person:Dr. Seuss]] and inspired by vacations at our father's house in [[wp>Baja California]]. |
| | |
| |
| ===== See Also ===== | ===== See Also ===== |
| | * [[custom:Baja|Customization with Baja]] |
| | * [[http://synchro.net/docs/baja.html|Baja Language Reference]] |
| * [[.:|Utilities]] | * [[.:|Utilities]] |
| |