2018-02-17 18:22:18 +02:00
|
|
|
package taskfile
|
|
|
|
|
2019-02-24 10:24:57 +02:00
|
|
|
// Tasks represents a group of tasks
|
2018-02-17 18:22:18 +02:00
|
|
|
type Tasks map[string]*Task
|
|
|
|
|
|
|
|
// Task represents a task
|
|
|
|
type Task struct {
|
2022-03-19 23:41:03 +02:00
|
|
|
Task string
|
|
|
|
Cmds []*Cmd
|
|
|
|
Deps []*Dep
|
|
|
|
Label string
|
|
|
|
Desc string
|
|
|
|
Summary string
|
|
|
|
Sources []string
|
|
|
|
Generates []string
|
|
|
|
Status []string
|
|
|
|
Preconditions []*Precondition
|
|
|
|
Dir string
|
|
|
|
Vars *Vars
|
|
|
|
Env *Vars
|
|
|
|
Silent bool
|
|
|
|
Interactive bool
|
2022-07-22 04:15:35 +02:00
|
|
|
Internal bool
|
2022-03-19 23:41:03 +02:00
|
|
|
Method string
|
|
|
|
Prefix string
|
|
|
|
IgnoreError bool
|
|
|
|
Run string
|
|
|
|
IncludeVars *Vars
|
|
|
|
IncludedTaskfileVars *Vars
|
2022-09-03 23:14:54 +02:00
|
|
|
IncludedTaskfile *IncludedTaskfile
|
2019-12-08 02:28:02 +02:00
|
|
|
}
|
|
|
|
|
2020-06-03 22:19:12 +02:00
|
|
|
func (t *Task) Name() string {
|
|
|
|
if t.Label != "" {
|
|
|
|
return t.Label
|
|
|
|
}
|
|
|
|
return t.Task
|
|
|
|
}
|
|
|
|
|
2019-12-08 02:28:02 +02:00
|
|
|
func (t *Task) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
|
|
|
var cmd Cmd
|
|
|
|
if err := unmarshal(&cmd); err == nil && cmd.Cmd != "" {
|
|
|
|
t.Cmds = append(t.Cmds, &cmd)
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
var cmds []*Cmd
|
|
|
|
if err := unmarshal(&cmds); err == nil && len(cmds) > 0 {
|
|
|
|
t.Cmds = cmds
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
var task struct {
|
|
|
|
Cmds []*Cmd
|
|
|
|
Deps []*Dep
|
2020-06-03 22:19:12 +02:00
|
|
|
Label string
|
2019-12-08 02:28:02 +02:00
|
|
|
Desc string
|
|
|
|
Summary string
|
|
|
|
Sources []string
|
|
|
|
Generates []string
|
|
|
|
Status []string
|
|
|
|
Preconditions []*Precondition
|
|
|
|
Dir string
|
2020-03-29 21:54:59 +02:00
|
|
|
Vars *Vars
|
|
|
|
Env *Vars
|
2019-12-08 02:28:02 +02:00
|
|
|
Silent bool
|
2021-09-01 18:28:38 +02:00
|
|
|
Interactive bool
|
2022-07-22 04:15:35 +02:00
|
|
|
Internal bool
|
2019-12-08 02:28:02 +02:00
|
|
|
Method string
|
|
|
|
Prefix string
|
|
|
|
IgnoreError bool `yaml:"ignore_error"`
|
2020-08-17 21:25:17 +02:00
|
|
|
Run string
|
2019-12-08 02:28:02 +02:00
|
|
|
}
|
2021-04-17 22:12:39 +02:00
|
|
|
if err := unmarshal(&task); err != nil {
|
|
|
|
return err
|
2019-12-08 02:28:02 +02:00
|
|
|
}
|
2021-04-17 22:12:39 +02:00
|
|
|
t.Cmds = task.Cmds
|
|
|
|
t.Deps = task.Deps
|
|
|
|
t.Label = task.Label
|
|
|
|
t.Desc = task.Desc
|
|
|
|
t.Summary = task.Summary
|
|
|
|
t.Sources = task.Sources
|
|
|
|
t.Generates = task.Generates
|
|
|
|
t.Status = task.Status
|
|
|
|
t.Preconditions = task.Preconditions
|
|
|
|
t.Dir = task.Dir
|
|
|
|
t.Vars = task.Vars
|
|
|
|
t.Env = task.Env
|
|
|
|
t.Silent = task.Silent
|
2021-09-01 18:28:38 +02:00
|
|
|
t.Interactive = task.Interactive
|
2022-07-22 04:15:35 +02:00
|
|
|
t.Internal = task.Internal
|
2021-04-17 22:12:39 +02:00
|
|
|
t.Method = task.Method
|
|
|
|
t.Prefix = task.Prefix
|
|
|
|
t.IgnoreError = task.IgnoreError
|
2020-08-17 21:25:17 +02:00
|
|
|
t.Run = task.Run
|
2021-04-17 22:12:39 +02:00
|
|
|
return nil
|
2018-02-17 18:22:18 +02:00
|
|
|
}
|