RETRO on Unix hosts is designed to play well with scripting.

Shebang

To run an entire program directly, start the file with the standard shebang and make the file executable:

#!/usr/bin/env retro

This requires the retro binary to be in your path.

Arguments

RETRO provides several words in the script: namespace for accessing command line arguments.

The number of arguments can be accessed via script:arguments. This will return a number with the arguments, other than the script name.

script:arguments '%n_arguments_passed\n s:format s:put

To retreive an argument, pass the argument number to script:get-argument:

script:arguments [ I script:get-argument s:put nl ] indexed-times

And to get the name of the script, use script:name.

script:name s:put

Mixing

With use of the Unu literate format, it's possible to mix both shell and RETRO code into a single script. As an example, this is a bit of shell that runs itself via retro for each .retro file in the current directory tree:

#!/bin/sh

# shell part find . -name '*.retro' -print0 | xargs -0 -n 1 retro $0 exit

# retro part

This will scan a source file and do something with it:

~~~ ... do stuff ... ~~~