MCPcopy
hub / github.com/go-task/task / UnmarshalYAML

Method UnmarshalYAML

taskfile/ast/cmd.go:46–123  ·  view source on GitHub ↗
(node *yaml.Node)

Source from the content-addressed store, hash-verified

44}
45
46func (c *Cmd) UnmarshalYAML(node *yaml.Node) error {
47 switch node.Kind {
48
49 case yaml.ScalarNode:
50 var cmd string
51 if err := node.Decode(&cmd); err != nil {
52 return errors.NewTaskfileDecodeError(err, node)
53 }
54 c.Cmd = cmd
55 return nil
56
57 case yaml.MappingNode:
58 var cmdStruct struct {
59 Cmd string
60 Task string
61 For *For
62 If string
63 Silent bool
64 Set []string
65 Shopt []string
66 Vars *Vars
67 IgnoreError bool `yaml:"ignore_error"`
68 Defer *Defer
69 Platforms []*Platform
70 }
71 if err := node.Decode(&cmdStruct); err != nil {
72 return errors.NewTaskfileDecodeError(err, node)
73 }
74 if cmdStruct.Defer != nil {
75
76 // A deferred command
77 if cmdStruct.Defer.Cmd != "" {
78 c.Defer = true
79 c.Cmd = cmdStruct.Defer.Cmd
80 c.Silent = cmdStruct.Silent
81 return nil
82 }
83
84 // A deferred task call
85 if cmdStruct.Defer.Task != "" {
86 c.Defer = true
87 c.Task = cmdStruct.Defer.Task
88 c.Vars = cmdStruct.Defer.Vars
89 c.Silent = cmdStruct.Defer.Silent
90 return nil
91 }
92 return nil
93 }
94
95 // A task call
96 if cmdStruct.Task != "" {
97 c.Task = cmdStruct.Task
98 c.Vars = cmdStruct.Vars
99 c.For = cmdStruct.For
100 c.If = cmdStruct.If
101 c.Silent = cmdStruct.Silent
102 c.IgnoreError = cmdStruct.IgnoreError
103 return nil

Callers

nothing calls this directly

Calls 3

NewTaskfileDecodeErrorFunction · 0.92
WithMessageMethod · 0.80
WithTypeMessageMethod · 0.80

Tested by

no test coverage detected