mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			29 lines
		
	
	
		
			871 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			871 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# HCL User Functions Extension
 | 
						|
 | 
						|
This HCL extension allows a calling application to support user-defined
 | 
						|
functions.
 | 
						|
 | 
						|
Functions are defined via a specific block type, like this:
 | 
						|
 | 
						|
```hcl
 | 
						|
function "add" {
 | 
						|
  params = [a, b]
 | 
						|
  result = a + b
 | 
						|
}
 | 
						|
 | 
						|
function "list" {
 | 
						|
  params         = []
 | 
						|
  variadic_param = items
 | 
						|
  result         = items
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
The extension is implemented as a pre-processor for `cty.Body` objects. Given
 | 
						|
a body that may contain functions, the `DecodeUserFunctions` function searches
 | 
						|
for blocks that define functions and returns a functions map suitable for
 | 
						|
inclusion in a `hcl.EvalContext`. It also returns a new `cty.Body` that
 | 
						|
contains the remainder of the content from the given body, allowing for
 | 
						|
further processing of remaining content.
 | 
						|
 | 
						|
For more information, see [the godoc reference](https://pkg.go.dev/github.com/hashicorp/hcl/v2/ext/userfunc?tab=doc).
 |