Interpolation Syntax¶
Jaffle configuration supports interpolation syntax wrapped by ${}
.
You can get environment varialbes, call functions, and execute Python code in it:
Example:
${'hello'.upper()}
The above produces 'HELLO'
.
Environment Variables¶
All environment variables consist of alphanumeric uppercase characters are available in the interpolation syntax.
Example:
${HOME}/etc
The above produces /home/your_account/etc
if your HOME
is '/home/your_account'
.
If you need a default value for an environment variable, use env() function instead.
Variables¶
Defined variables can be embedded with ${var.name}
syntax in arbitrary HCL value part.
Example:
disabled = "${var.enable_debug}"
See variable section for details.
Functions¶
env()¶
exec()¶
fg()¶
-
fg
(color)[source]¶ Inserts the escape sequence of the foreground color.
Available colors are ‘black’, ‘red’, ‘green’, ‘yellow’, ‘blue’, ‘magenta’, ‘cyan’, ‘white’, ‘bright_black’, ‘bright_red’, ‘bright_green’, ‘bright_yellow’, ‘bright_blue’ , ‘bright_magenta’, ‘bright_cyan’ and ‘bright_white’.
Parameters: color (str) – Foreground color in str (e.g. ‘red’). Returns: seq – Escape sequence of the foreground color. Return type: str Raises: ValueError
– Invalid color name.
bg()¶
-
bg
(color)[source]¶ Inserts the escape sequence of the background color.
Available colors are ‘black’, ‘red’, ‘green’, ‘yellow’, ‘blue’, ‘magenta’, ‘cyan’, ‘white’, ‘bright_black’, ‘bright_red’, ‘bright_green’, ‘bright_yellow’, ‘bright_blue’ , ‘bright_magenta’, ‘bright_cyan’ and ‘bright_white’.
Parameters: color (str) – Background color in str (e.g. ‘red’). Returns: seq – Escape sequence of the background color. Return type: str Raises: ValueError
– Invalid color name.
reset()¶
jq_all()¶
-
jq_all
(query, data_str, *args, **kwargs)[source]¶ Queries the nested data and returns all results as a list.
Parameters: data_str (str) – Nested data in Python dict’s representation format. If must be loadable by yaml.safe_load()
.Returns: result – String representation of the result list. Return type: str
pyjq processes the query.
jq()
is an alias to jq_all()
.
jq_first()¶
-
jq_first
(query, data_str, *args, **kwargs)[source]¶ Queries the nested data and returns the first result.
Parameters: data_str (str) – Nested data in Python dict’s representation format. If must be loadable by yaml.safe_load()
.Returns: result – String representation of the result object. Return type: str
pyjq processes the query.
jqf()
is an alias to jq_first()
.
Filters¶
The |
operator can be used in a ${}
expression to apply filters.
Example:
${'hello world' | u}
The u
filter applies URL escaping to the string, and produces 'hello+world'
.
To apply more than one filter, separate them by a comma:
${' hello world ' | trim,u}
The above produces 'hello+world'
.
Available Filters¶
- u
URL escaping.
${"hello <b>world</b>" | x}
=>'hello+world'
- h
HTML escaping.
${"hello <b>world</b>" | x}
=>'hello <b>world</b>'
- x
XML escaping.
${"hello <b>world</b>" | x}
=>'hello <b>world</b>'
- trim
Whitespace trimming.
${" hello world " | x}
=>'hello world'
- entity
Produces HTML entity references for applicable strings.
${"→" | entit}
=>'→'