Outpost Scripting

Resource page


Date:   January 15, 2016

Welcome to the Outpost Scripting Resource Page.  Here's what you will find here.

About Outpost Scripting
List of Statements and Commands
Sample Scripts (Tutorials, Examples)

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:

  1. Automatically poll a series of BBSs, one after another
  2. Detecting a text file on the PC and send it as a message to a BBS
  3. Finding and doing something with a message that is received by Outpost

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

(i) dynamically reconfigure Outpost parameters "on the fly", 
(ii) manipulate messages both inside and outside of Outpost, and 
(iii) interact with the outside world (outside of Outpost, that is).

What is Outpost 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. 


The Final version of the Outpost Scripting User Guide is now available and includes all the changes incorporated into the current release.    To download, right mouse-click on the file, select "Save Target As...", and choose or create your download directory.








772Kb, Outpost Scripting, User Guide.  Please see the  user guide before attempting to use the Outpost Scripting feature.



Sample Scripts

Naturally, with a scripting capability in hand, what can you do with Opscripts?  And what do the scripts look like?  Here are several samples that have been used either as part of the documentation, testing, or just 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.  

To view a script, click on a link below.  To download a script, either cut and paste out of an open script window (when viewing), or right mouse-click on the file, select "Save Target As...", and choose or create your download directory.




Tutorial Scripts   The following scripts are the scripts used in the tutorials from the User Guide.  Use these if you have problems getting yours loaded.  All scripts have been confirmed operational.



Tutorial #1, Basic introduction to scripts.  Shows the structure of a script, and writes some output to the form.



Tutorial #3, Playing with Strings; basic string manipulation of strings.



Tutorial #3, Playing with Strings; more complex; shows how to use the CRLF (Carriage Return/Line Feed) variable and long lines manipulation of strings.



Tutorial #4, Arithmetic Operations; shows how to do simple math.



Tutorial #5, Looping... forever!  Shows how to set up a continuous loop on a block of code. 



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 #6, Conditional Looping; shows how to set up a loop on a block of code as long a file exists.  



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 #7b, Conditional actions (If-Then-Else-Endif); expands on the above example by including an Else condition.



Tutorial #8, Send/Receive Sessions; up one BBS, TNC, and the retrieve options, and kicks off Outpost.



Tutorial #8b, Send/Receive Sessions; loop on 2 BBSs, different retrieve options.



Tutorial #9, Create messages; this script creates two messages and leaves it in the Outpost out tray.



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, File Manipulation; this script looks for files that match a certain name pattern, and creates Outpost messages from them.




Examples   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. 
BbsLoop-1.txt 10-Oct-08 Easy -- Loops on 3 BBSs, 2 users;  straight-forward implementation.
BbsLoop-2.txt 10-Oct-08 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 10-Oct-08 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 10-Oct-08 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 10-Oct-08 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.