next up previous
Next: Maelstrom and make Up: The Maelstrom Previous: The Maelstrom

Crafting the perfect storm

For convenience and ease of use, Maelstrom's configuration file looks much like a Makefile. The directive:

 
c1 :  c2 :  c3
describes the precedences between scripts c1, c2, and c3: c3 before c2 before c1. The difference between this and a Makefile is that there are nothing but scripts here; there are no other files or intermediary results listed. Scripts can have arguments. Two script invocations are considered identical if they have the exact same arguments, so that a script must succeed once with each set of arguments. Thus the declaration:
 
c1 -f : c2 --tftp
c2 --tftp : c2 --comsat
describes the relationships between three scripts, ``c1 -f'', ``c2 --comsat'' and ``c2 --tftp''.

Commands in Maelstrom are repeatedly executed until they succeed, as indicated by a return code (exit status) of 0. If they do not succeed, they are repeated in sequence according to the total order suggested by a topological sort of the partial order described by the file. During this process, Maelstrom skips any scripts that previously succeeded during the repetition. In the last example above, the total order is:

A.
c2 --comsat
B.
c2 --tftp
C.
c1 -f
Maelstrom would execute these in the order ``ABCABCA'', which as above contains all permutations of A, B, and C as subsequences.


next up previous
Next: Maelstrom and make Up: The Maelstrom Previous: The Maelstrom
Alva L. Couch
2001-10-02