Outpost Scripting

About | Docs | Tutorials | Samples | Command Reference

About Outpost Scripting

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:

It seemed that a different approach was needed that would let users take advantage of the Outpost intrinsic capabilities without constraining the creative ideas that our users definitely have!
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...
  1. dynamically reconfigure Outpost parameters "on the fly",
  2. manipulate messages both inside and outside of Outpost, and
  3. 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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!
Check out the links above for more information about Outpost Scripts.



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.



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.