Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Instruction INCLUDE

Summary

INCLUDE <module-name> [...<key>=<value>]

Tip

See the section on module names.

The INCLUDE instruction points to a Raptor include file (.rinc) to be executed. When using INCLUDE, any number of local variables can be passed to the included target.

For example, if we have previously made the file lib/install-utils.rinc that installs some useful programs, we can use that file in build targets:

# Note: We use module name notation when including files
#
# The file is called `lib/install-utils.rinc`, which makes
#    the module name `lib.install-utils`
INCLUDE lib.install-utils

We can also make the component accept parameters, to make powerful, flexible components:

# hypothetical library function to update "/etc/hostname"
INCLUDE lib.set-hostname hostname="server1"

In the above example, we set the hostname of a server using an included component.

Tip

Since all values have to be specified as key=value, we might end up passing variables through several raptor files. This often ends up looking like this in the middle:

INCLUDE setup-thing username=username password=password

This is of course valid, but a shorter syntax exists for this case:

INCLUDE setup-thing username password

In other words, an include parameter name=name can always be shortened to name.