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]] |
| |