| ||||
| ||||
Loading...
|
New to Shake reports? Select 'Help' from the drop-down box (currently displaying 'Summary') then press 'Run'.
| message |
| the query |
For information about the query language, see Help.
Shake reports provide a way of filtering, grouping and viewing the result of running a Shake build system. A query is entered at the top using the text box, run using the 'Run' button, and produces a report whose type is selected from the drop-down box. The 'Link' hyperlink provides a link to the currently entered query, which is useful for copying/sharing.
The drop-down box, currently displaying 'Help', let's you pick the type of report. The best way to learn about the report types is to try them out (all work with the empty query). The types are:
slowestRule()
with "rule name"
to use a different rule.
The query language is a Javascript expression which produces true
to include the row, and may call group
to indicate grouping. You can use the standard Javascript operators (e.g. ==
and &&
). Anything which takes a RegExp
can also accept a string
, which is then treated as a literal unanchored regular expression. The following functions are available:
group(x : string) : true
- assign this item the given group. Multiple calls to group
result in a space-separated name. The group name can also be set using name
or command
with captured regular expressions.leaf() : bool
- is the rule a leaf, with no dependencies.run() : int
- when was the rule last run, with 0 for run in the last tracked build, and higher numbers for run longer ago.run(x : int) : bool
- equality against a run number, run(0)
is equivalent to run() == 0
.unchanged() : bool
- last time the rule was built, did the value not change.slowestRule() : string
- the name of the rule which took longest to build.name() : string
- the name of the current rule.name(x : RegExp) : bool
- a regular expression to match against the name of the current rule. If the regular expression contains captured patterns, these will be used as the group
name(x : RegExp, def : string) : true
- a regular expression to match against the name of the current rule, including captured patterns for the group
. If the regular expression does not match, the function will still return true but def
will be used as the group.rename(from : string, to : string) : true
- change name
so any string from
is replaced with to
, useful for replacing an object directory (which is uninteresting) with something like $OBJ.rename(from : string) : true
- rename using ""
as the replacement string.command() : string
- when matching rules this is the name of the first command the rule executed, or ""
if the rule ran no commands. When matching commands this is the name of each command in turn.command(x : RegExp) : bool
- a regular expression to match against any of the commands, including grouping as per name
.command(x : RegExp, def : string) : true
- works the same as the name
function which takes two arguments.childOf(x : RegExp) : bool
- is this rule a direct child of x
, the rule for this item calls need/apply on x
.descendantOf(x : RegExp) : bool
- is this rule a descendant of x
, a change in x
will cause this rule to rebuild (ignoring unchanging rules).parentOf(x : RegExp) : bool
- is this rule a direct parent of x
, the rule for x
calls need/apply on this item.ancestorOf(x : RegExp) : bool
- is this rule an ancestor of x
, a change in this rule will cause x
to rebuild (ignoring unchanging rules).textColor(c : color) : true
- set the color of this group to the given color, represented as a string - either the name of a color ("red"
) or a hex value ("#ff0000
). If multiple textColor
calls are given in one query, the last one will be used. If multiple different textColor
values are given to one group, the group will not be colored.textColor(c : color, b : bool) : true
- set the textColor
of this group if the second argument is true
.backColor(c : color) : true
- like textColor
but to set the background color.backColor(c : color, b : bool) : true
- like textColor
but to set the background color.