Unix Scripting

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