Skip to main content

System Processes bindings

<name> is defined by system process "<expression>"

Associates a name with the return value of a local system process. The value is resolved every time the name is referenced.

Where

  • <name> is the name to associated the returned value to
  • <expression> is the system process that will return the value to assign (can be in DocString position)

Optionally accepts the @Eager, @Lazy or @Masked annotations.

  • @Eager immediately evaluates the <expression> and binds the result to <name>
  • @Lazy evaluates the <expression> and binds the result to <name> when it is first referenced
  • In the absence of either of the above annotations, <expression> is evaluated every time <name> is referenced
  • @Masked masks the captured value to prevent it from being logged as clear text

Example

  Given my hostname is defined by system process "hostname"
Then my hostname should not be ""
<name> is defined by system process "<expression>" delimited by "<delimiters>"

Associates a name with the return value of a delimited local system process. The value is resolved every time the name is referenced.

Where

  • <name> is the name to associated the returned value to
  • <expression> is the system process that will return the value to assign (can be in DocString position)

    • Delmiters are required for special cases such as when unbalanced quoted strings are passed as arguments (see example).
  • <delmiters> is a regex pattern defining the delimiter(s) used in <expression>

Optionally accepts the @Eager, @Lazy or @Masked annotations.

  • @Eager immediately evaluates the <expression> and binds the result to <name>
  • @Lazy evaluates the <expression> and binds the result to <name> when it is first referenced
  • In the absence of either of the above annotations, <expression> is evaluated every time <name> is referenced
  • @Masked masks the captured value to prevent it from being logged as clear text

Example

  Given my message is defined by system process "echo,"quoted text " and orphan quote"" delimited by ","
Then my message should be ""quoted text " and orphan quote""
<name> is defined by unix system process "<expression>"

Associates a name with the return value of a local unix system process. The value is resolved every time the name is referenced.

Where

  • <name> is the name to associated the returned value to
  • <expression> is the unix system process that will return the value to assign (can be in DocString position)

Optionally accepts the @Eager, @Lazy or @Masked annotations.

  • @Eager immediately evaluates the <expression> and binds the result to <name>
  • @Lazy evaluates the <expression> and binds the result to <name> when it is first referenced
  • In the absence of either of the above annotations, <expression> is evaluated every time <name> is referenced
  • @Masked masks the captured value to prevent it from being logged as clear text

Example

Given a file.csv with content:

Word1,Word2,Compound
basket,ball,basketball
sun,flower,sunflower

The following will print the data and line up each column

  Given my table is defined by unix system process "cat file.csv | column -t -s\,"
Then my table should be
"""
Word1 Word2 Compound
basket ball basketball
sun flower sunflower
"""