mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-01 00:23:56 +08:00 
			
		
		
		
	Parse bake config as hcl falling back to json
Signed-off-by: Patrick Van Stee <patrick@vanstee.me>
This commit is contained in:
		
							
								
								
									
										26
									
								
								bake/hcl.go
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								bake/hcl.go
									
									
									
									
									
								
							| @@ -74,18 +74,20 @@ type staticConfig struct { | ||||
| } | ||||
|  | ||||
| func ParseHCL(dt []byte, fn string) (*Config, error) { | ||||
| 	var file *hcl.File | ||||
| 	var diags hcl.Diagnostics | ||||
|  | ||||
| 	// Decode user defined functions. | ||||
| 	fnl := strings.ToLower(fn) | ||||
| 	if strings.HasSuffix(fnl, ".json") { | ||||
| 		file, diags = json.Parse(dt, fn) | ||||
| 	} else { | ||||
| 		file, diags = hclsyntax.ParseConfig(dt, fn, hcl.Pos{Line: 1, Column: 1}) | ||||
| 	} | ||||
| 	if diags.HasErrors() { | ||||
| 		return nil, diags | ||||
| 	// Decode user defined functions, first parsing as hcl and falling back to | ||||
| 	// json, returning errors based on the file suffix. | ||||
| 	file, hcldiags := hclsyntax.ParseConfig(dt, fn, hcl.Pos{Line: 1, Column: 1}) | ||||
| 	if hcldiags.HasErrors() { | ||||
| 		var jsondiags hcl.Diagnostics | ||||
| 		file, jsondiags = json.Parse(dt, fn) | ||||
| 		if jsondiags.HasErrors() { | ||||
| 			fnl := strings.ToLower(fn) | ||||
| 			if strings.HasSuffix(fnl, ".json") { | ||||
| 				return nil, jsondiags | ||||
| 			} else { | ||||
| 				return nil, hcldiags | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	userFunctions, _, diags := userfunc.DecodeUserFunctions(file.Body, "function", func() *hcl.EvalContext { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Patrick Van Stee
					Patrick Van Stee