mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
Added chomp interpolation function.
This commit is contained in:
parent
182e6c5f4e
commit
059a1b2c0f
@ -58,6 +58,7 @@ func Funcs() map[string]ast.Function {
|
|||||||
"base64encode": interpolationFuncBase64Encode(),
|
"base64encode": interpolationFuncBase64Encode(),
|
||||||
"base64sha256": interpolationFuncBase64Sha256(),
|
"base64sha256": interpolationFuncBase64Sha256(),
|
||||||
"ceil": interpolationFuncCeil(),
|
"ceil": interpolationFuncCeil(),
|
||||||
|
"chomp": interpolationFuncChomp(),
|
||||||
"cidrhost": interpolationFuncCidrHost(),
|
"cidrhost": interpolationFuncCidrHost(),
|
||||||
"cidrnetmask": interpolationFuncCidrNetmask(),
|
"cidrnetmask": interpolationFuncCidrNetmask(),
|
||||||
"cidrsubnet": interpolationFuncCidrSubnet(),
|
"cidrsubnet": interpolationFuncCidrSubnet(),
|
||||||
@ -459,6 +460,17 @@ func interpolationFuncCeil() ast.Function {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// interpolationFuncChomp removes trailing newlines from the given string
|
||||||
|
func interpolationFuncChomp() ast.Function {
|
||||||
|
return ast.Function{
|
||||||
|
ArgTypes: []ast.Type{ast.TypeString},
|
||||||
|
ReturnType: ast.TypeString,
|
||||||
|
Callback: func(args []interface{}) (interface{}, error) {
|
||||||
|
return strings.TrimRight(args[0].(string), "\n"), nil
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// interpolationFuncFloorreturns returns the greatest integer value less than or equal to the argument
|
// interpolationFuncFloorreturns returns the greatest integer value less than or equal to the argument
|
||||||
func interpolationFuncFloor() ast.Function {
|
func interpolationFuncFloor() ast.Function {
|
||||||
return ast.Function{
|
return ast.Function{
|
||||||
|
@ -370,6 +370,32 @@ func TestInterpolateFuncCeil(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestInterpolateFuncChomp(t *testing.T) {
|
||||||
|
testFunction(t, testFunctionConfig{
|
||||||
|
Cases: []testFunctionCase{
|
||||||
|
{
|
||||||
|
`${chomp()}`,
|
||||||
|
nil,
|
||||||
|
true,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
`${chomp("hello world")}`,
|
||||||
|
"hello world",
|
||||||
|
false,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
`${chomp("goodbye\ncruel\nworld\n")}`,
|
||||||
|
`goodbye
|
||||||
|
cruel
|
||||||
|
world`,
|
||||||
|
false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func TestInterpolateFuncMap(t *testing.T) {
|
func TestInterpolateFuncMap(t *testing.T) {
|
||||||
testFunction(t, testFunctionConfig{
|
testFunction(t, testFunctionConfig{
|
||||||
Cases: []testFunctionCase{
|
Cases: []testFunctionCase{
|
||||||
|
@ -156,6 +156,8 @@ The supported built-in functions are:
|
|||||||
* `ceil(float)` - Returns the least integer value greater than or equal
|
* `ceil(float)` - Returns the least integer value greater than or equal
|
||||||
to the argument.
|
to the argument.
|
||||||
|
|
||||||
|
* `chomp(string)` - Removes trailing newlines from the given string.
|
||||||
|
|
||||||
* `cidrhost(iprange, hostnum)` - Takes an IP address range in CIDR notation
|
* `cidrhost(iprange, hostnum)` - Takes an IP address range in CIDR notation
|
||||||
and creates an IP address with the given host number. For example,
|
and creates an IP address with the given host number. For example,
|
||||||
`cidrhost("10.0.0.0/8", 2)` returns `10.0.0.2`.
|
`cidrhost("10.0.0.0/8", 2)` returns `10.0.0.2`.
|
||||||
|
Loading…
Reference in New Issue
Block a user