Skip to main content

Running the Ampersand compiler (CLI)

Purpose

In many situations, you can avoid running the Ampersand compiler from the command line. For instance, by using a system such as RAP. However, in situations that you run Ampersand from the command line, this page is the place to be.

Prerequisites

We assume you have docker running on your computer and that you are connected to the internet. In that case you don't have to install anything.

Command

The following is the base command on Linux (works for bash as well as zsh)

docker run -it -v $(pwd):/scripts ampersandtarski/ampersand

On the Windows-10 command-line this looks slightly different (todo: check this!)

docker run -it -v $PWD:/scripts ampersandtarski/ampersand

This runs the Ampersand compiler (from your command prompt). The first time you do this, docker will take some time to download the images it needs.

Synopsis

docker run -it -v "$(pwd)":/scripts ampersandtarski/ampersand COMMAND [OPTIONS] FILE

In the sequel we will use ampersand as an alias for docker run -it -v "$(pwd)":/scripts ampersandtarski/ampersand

Description

The command ampersand takes a file as input. It must contain a valid ampersand script, i.e. a script that complies to the syntax and semantics of ampersand. The compiler will not generate any output unless the script is valid.

Examples

ampersand documentation --format docx --verbose Hawaii.adl  # generates a specification document for Hawaii.adl
ampersand check Delivery.adl # just check Delivery.adl for errors
ampersand proto --proto-dir "D:\htdocs\CvM\" Contracts.adl # generate a prototype from Contracts.adl and write the application to the specified directory.
ampersand --help
ampersand --help --verbose
ampersand --version

Help!

The help system of the command line interface shows help specific for the command you give. If you run ampersand --help, you wil get a list of all possible commands with their description. You can get help for each of these commands by asking for it. e.g. ampersand documentation --help.

Bugs

We are happy to receive bug reports at AmpersandTarski . However, please try to help us by first checking that it has not been reported already. You can do so by searching the issues. When in doubt however, don't hesitate to create a new issue.

Exit status

In case the Ampersand compiler is called by software and fails, it is useful to have an exit code to give some information about the nature of the failure. The Ampersand compiler produces the following exit codes:

CodeNameMeaning
0SuccessCompilation has terminated without failures
2FatalThis is a software error in the Ampersand compiler, that should never have occured in operational use. Please report an issue.
10InvalidThe script is not valid and the compiler has produced error messages to help you diagnose your mistake(s).
20InconsistentThe population would violate invariants. The compiler cannot generate a violation-free database.
30Invalid SQLAn SQL query gives other results than the semantics of Ampersand prescribes. This should never occur, so please report an issue.
50Ampersand violationsThere are sanity checks on your script that have produced violations, so the compiler will not generate an application.
60ComposerThe installation of Composer failed, so the front-end application will not work. This is most likely a configuration error.
70Wrong argumentsThe command-line arguments by which the compiler was called contain errors. Inspect the compiler output for a diagnosis.
80Back-endThe compiler failed to install the prototype framework. This is most likely a configuration error.