On this page:
machine
parallel
sequential
site-config?
site-config-tag
site-config-options
site-config-content
current-mode
current-stamp

3 Site Configuration Language

A site configuration module is normally written in the distro-build/config language. The configuration describes individual machines, and groups them with parallel or sequential to indicate whether the machine’s builds should run sequentially or in parallel. Options specified at parallel or sequential are propagated to each machine in the group.

 #lang distro-build/config package: distro-build-server

The distro-build/config language is like racket/base except that the module body must have exactly one expression (plus any number of definitions, etc.) that produces a site-configuration value. The value is exported as site-config from the module. Any module can act as a site-configuration module a long as it exports site-config as a site-configuration value.

Site-configuration values are created with sequential, parallel, and machine:

procedure

(machine ...)  site-config?

procedure

(parallel ... config ...)  site-config?

  config : site-config

procedure

(sequential ... config ...)  site-config?

  config : site-config
Produces a site configuration based on the given keyword-based options as described below. The sequential function produces a site configuration that runs each config sequentially. The parallel function produces a site configuration that runs each config in parallel.

Site-configuration keyword arguments (where string* means no spaces, etc.):

Top keywords (recognized only in the configuration top-level):

procedure

(site-config? v)  boolean?

  v : any/c

procedure

(site-config-tag config)

  (or/c 'machine 'sequential 'parallel)
  config : site-config?

procedure

(site-config-options config)  (hash/c keyword? any/c)

  config : site-config?

procedure

(site-config-content config)  (listof site-config?)

  config : site-config?
Recognize and inspect site configurations.

parameter

(current-mode)  string?

(current-mode s)  void?
  s : string?
A parameter whose value is the user’s requested mode for this configuration, normally as provided via the makefile’s CONFIG_MODE variable. The default mode is "default". The interpretation of modes is completely up to the site configuration file.

procedure

(current-stamp)  string?

Returns a string to identify the current build, normally a combination of the date and a git commit hash.