mirror of
				https://github.com/go-task/task.git
				synced 2025-10-30 23:58:01 +02:00 
			
		
		
		
	feat: added basic merge template function (#1438)
This commit is contained in:
		| @@ -646,9 +646,9 @@ tasks: | ||||
| compare the checksum of the source files to determine if it's necessary to run | ||||
| the task. If not, it will just print a message like `Task "js" is up to date`. | ||||
|  | ||||
| `exclude:` can also be used to exclude files from fingerprinting. | ||||
| Sources are evaluated in order, so `exclude:` must come after the positive | ||||
| glob it is negating. | ||||
| `exclude:` can also be used to exclude files from fingerprinting. Sources are | ||||
| evaluated in order, so `exclude:` must come after the positive glob it is | ||||
| negating. | ||||
|  | ||||
| ```yaml | ||||
| version: '3' | ||||
| @@ -1291,6 +1291,9 @@ Task also adds the following functions: | ||||
| - `relPath`: Converts an absolute path (second argument) into a relative path, | ||||
|   based on a base path (first argument). The same as Go's | ||||
|   [filepath.Rel](https://pkg.go.dev/path/filepath#Rel). | ||||
| - `merge`: Creates a new map that is a copy of the first map with the keys of | ||||
|   the second map merged into it. If there are duplicate keys, the value of the | ||||
|   second map is used. | ||||
| - `spew`: Returns the Go representation of a specific variable. Useful for | ||||
|   debugging. Uses the [davecgh/go-spew](https://github.com/davecgh/go-spew) | ||||
|   package. | ||||
| @@ -1489,8 +1492,8 @@ task: "This is a dangerous command... Do you want to continue?" [y/N] | ||||
| ``` | ||||
|  | ||||
| Warning prompts are called before executing a task. If a prompt is denied Task | ||||
| will exit with [exit code](/api#exit-codes) 205. If approved, Task | ||||
| will continue as normal. | ||||
| will exit with [exit code](/api#exit-codes) 205. If approved, Task will continue | ||||
| as normal. | ||||
|  | ||||
| ```bash | ||||
| ❯ task example | ||||
| @@ -1844,7 +1847,7 @@ tasks: | ||||
|     sources: | ||||
|       - '**/*.go' | ||||
|     cmds: | ||||
|       - go build  # ... | ||||
|       - go build # ... | ||||
| ``` | ||||
|  | ||||
| :::info | ||||
|   | ||||
| @@ -6,11 +6,10 @@ import ( | ||||
| 	"strings" | ||||
| 	"text/template" | ||||
|  | ||||
| 	"github.com/davecgh/go-spew/spew" | ||||
| 	"mvdan.cc/sh/v3/shell" | ||||
| 	"mvdan.cc/sh/v3/syntax" | ||||
|  | ||||
| 	"github.com/davecgh/go-spew/spew" | ||||
|  | ||||
| 	sprig "github.com/go-task/slim-sprig/v3" | ||||
| ) | ||||
|  | ||||
| @@ -54,6 +53,16 @@ func init() { | ||||
| 		"relPath": func(basePath, targetPath string) (string, error) { | ||||
| 			return filepath.Rel(basePath, targetPath) | ||||
| 		}, | ||||
| 		"merge": func(a, b map[string]any) map[string]any { | ||||
| 			m := make(map[string]any, len(a)+len(b)) | ||||
| 			for k, v := range a { | ||||
| 				m[k] = v | ||||
| 			} | ||||
| 			for k, v := range b { | ||||
| 				m[k] = v | ||||
| 			} | ||||
| 			return m | ||||
| 		}, | ||||
| 		"spew": func(v any) string { | ||||
| 			return spew.Sdump(v) | ||||
| 		}, | ||||
|   | ||||
							
								
								
									
										1
									
								
								testdata/vars/any/Taskfile.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								testdata/vars/any/Taskfile.yml
									
									
									
									
										vendored
									
									
								
							| @@ -7,6 +7,7 @@ tasks: | ||||
|     - task: bool | ||||
|     - task: int | ||||
|     - task: string-array | ||||
|     - task: map | ||||
|     - task: for-string | ||||
|     - task: for-int | ||||
|     - task: for-map | ||||
|   | ||||
		Reference in New Issue
	
	Block a user