Outpost Scripting
About Outpost Scripting
Introduction
Over the years, users have requested additional capabilities with Outpost that just didn't make sense to add to the core Outpost application. For instance, users requested things like:
- Automatically poll a series of BBSs, one after another
- Detecting a text file on the PC and send it as a message to a BBS
- Finding and doing something with a message that is received by Outpost
With all of this in mind, the idea of developing a scripting facility and associated language started to take form. The design goals would be to provide capabilities that could...
- dynamically reconfigure Outpost parameters "on the fly",
- manipulate messages both inside and outside of Outpost, and
- interact with the outside world (outside of Outpost, that is).
What is Scripting
Outpost Scripting is used by Outpost users who want enhanced message and application automation. To make this happen, a new program -- Opscripts.exe -- is used.
Outpost Scripting is made up of 4 key components:
- Outpost Scripting Language (OSL). This language is made up of a series of statements and commands that let the user develop his/her own messaging process flow based on their local needs. Minimally, the OSL statements addresses all of the expressed needs that I've heard of so far. Commands and statements are entered into a script editing window, can be saved for later use, and compiled and run. See the list of statements and commands here.
- Outpost Script Compiler. The OSL compiler reads the OSL script and produces a "virtual machine language" output for subsequent processing. During the compilation process, it performs all error checking of the script to ensure that the syntax of the OSL statements are entered correctly. Once complete, the results are reported as either a Pass or a Fail.
- Outpost Virtual Machine (OVM). Once the script is compiled, it can then be executed. The script is compiled into a lower level virtual machine language that is interpreted at runtime.
- Outpost Scripting Window. All scripting capabilities - editing, compiling, and running - are managed by the Outpost Scripts program called Opscripts.exe. Other than knowing what you want to accomplish and how to develop the script, the rest is nothing more than pushing the Run button to run your script!
Tutorials
Naturally, with a scripting capability in hand, what can you do with Opscripts? And what do the scripts look like? The following section are the scripts referenced in the Tutorials portion of the Scripting User Guide. Several additional examples are included in the next section that are either in the documentation, were part of testing, or just fun examples of what they could look like. As you develop your own scripts and want to share them with other Outpost users, please send them along and state its ok to share.
Name | Description |
---|---|
Tutorial-01.txt | Tutorial #1, Basic introduction to scripts. Shows the structure of a script, and writes some output to the form. |
Tutorial-03.txt | Tutorial #3, Playing with Strings; basic string manipulation of strings. |
Tutorial-03b.txt | Tutorial #3b, Playing with Strings; more complex; shows how to use the CRLF (Carriage Return/Line Feed) variable and long lines manipulation of strings. |
Tutorial-04.txt | Tutorial #4, Arithmetic Operations; shows how to do simple math. |
Tutorial-05.txt | Tutorial #5, Looping... forever!; Shows how to set up a continuous loop on a block of code |
Tutorial-06.txt | Tutorial #6, Conditional Looping; shows how to set up a loop on a block of code as long as an arithmetic expression is true. |
Tutorial-06b.txt | Tutorial #6, Conditional Looping; shows how to set up a loop on a block of code as long a file exists. |
Tutorial-07.txt | Tutorial #7, Conditional actions (If-Then-Endif); shows how to set up a loop on a block of code as long a file exists. |
Tutorial-07b.txt | Tutorial #7b, Conditional actions (If-Then-Else-Endif); expands on the above example by including an Else condition. |
Tutorial-08.txt | Tutorial #8, Send/Receive Sessions; up one BBS, TNC, and the retrieve options, and kicks off Outpost. |
Tutorial-08b.txt | Tutorial #8b, Send/Receive Sessions; loop on 2 BBSs, different retrieve options. |
Tutorial-09.txt | Tutorial #9, Create messages; this script creates two messages and leaves it in the Outpost out tray. |
Tutorial-10.txt | Tutorial #10, Working with Received Messages; this script looks for a message in the In Tray and forwards it to a different user. |
Tutorial-11.txt | Tutorial #11, File Manipulation; this script looks for files that match a certain name pattern, and creates Outpost messages from them. |
Samples
These are sample scripts that further demonstrate some of the capabilities of Outpost scripting. Each script has been confirmed operational. All users should ensure that Outpost is set up with whatever BBS and TNC setups that the scripts may call.
Name | Description |
---|---|
BbsLoop-1.txt | Easy -- Loops on 3 BBSs, 2 users; straight-forward implementation. |
BbsLoop-2.txt | Moderate -- Loops on 3 BBSs, 2 users; essentially the same as BbsLoop-1, this script shows how multiple script lines can be collapsed into fewer lines. |
BbsLoop-3.txt | Hard -- Loops on 3 BBSs, 1 user; uses a string of BBS names to drive single BBS processing. Same effect as the above script, except for one user. |
Example-3.txt | Moderate -- This script looks for files in a PC directory that match a specific name pattern, creates a bulletin message with the file's content, then sends it. This is Example 3 from the Users Guide. |
Example-4.txt | Moderate -- This script looks for incoming packet messages with a specific phrase in the subject, and then forwards it to my email address via Winlink. This is Example 4 from the Users Guide. |