1
0
mirror of https://github.com/go-task/task.git synced 2025-02-03 13:22:11 +02:00

Add label field to task definition

Label is an alternative name for task that replace it when printed in following context eg.:

- log: when given task is up to date and is skipped from execution
- log: when given task is NOT up to date (`--status` command)
- in `--summary` and `--list` commands output
This commit is contained in:
Adam Wasila 2020-06-03 22:19:12 +02:00
parent f4f6efa547
commit 9f83311931
6 changed files with 15 additions and 4 deletions

View File

@ -21,7 +21,7 @@ func (e *Executor) PrintTasksHelp() {
// Format in tab-separated columns with a tab stop of 8. // Format in tab-separated columns with a tab stop of 8.
w := tabwriter.NewWriter(e.Stdout, 0, 8, 0, '\t', 0) w := tabwriter.NewWriter(e.Stdout, 0, 8, 0, '\t', 0)
for _, task := range tasks { for _, task := range tasks {
fmt.Fprintf(w, "* %s: \t%s\n", task.Task, task.Desc) fmt.Fprintf(w, "* %s: \t%s\n", task.Name(), task.Desc)
} }
w.Flush() w.Flush()
} }

View File

@ -56,7 +56,7 @@ func printTaskSummary(l *logger.Logger, t *taskfile.Task) {
} }
func printTaskName(l *logger.Logger, t *taskfile.Task) { func printTaskName(l *logger.Logger, t *taskfile.Task) {
l.Outf(logger.Default, "task: %s", t.Task) l.Outf(logger.Default, "task: %s", t.Name())
l.Outf(logger.Default, "") l.Outf(logger.Default, "")
} }

View File

@ -12,6 +12,7 @@ type Task struct {
Task string Task string
Cmds []*Cmd Cmds []*Cmd
Deps []*Dep Deps []*Dep
Label string
Desc string Desc string
Summary string Summary string
Sources []string Sources []string
@ -32,6 +33,13 @@ var (
ErrCantUnmarshalTask = errors.New("task: can't unmarshal task value") ErrCantUnmarshalTask = errors.New("task: can't unmarshal task value")
) )
func (t *Task) Name() string {
if t.Label != "" {
return t.Label
}
return t.Task
}
func (t *Task) UnmarshalYAML(unmarshal func(interface{}) error) error { func (t *Task) UnmarshalYAML(unmarshal func(interface{}) error) error {
var cmd Cmd var cmd Cmd
if err := unmarshal(&cmd); err == nil && cmd.Cmd != "" { if err := unmarshal(&cmd); err == nil && cmd.Cmd != "" {
@ -48,6 +56,7 @@ func (t *Task) UnmarshalYAML(unmarshal func(interface{}) error) error {
var task struct { var task struct {
Cmds []*Cmd Cmds []*Cmd
Deps []*Dep Deps []*Dep
Label string
Desc string Desc string
Summary string Summary string
Sources []string Sources []string
@ -65,6 +74,7 @@ func (t *Task) UnmarshalYAML(unmarshal func(interface{}) error) error {
if err := unmarshal(&task); err == nil { if err := unmarshal(&task); err == nil {
t.Cmds = task.Cmds t.Cmds = task.Cmds
t.Deps = task.Deps t.Deps = task.Deps
t.Label = task.Label
t.Desc = task.Desc t.Desc = task.Desc
t.Summary = task.Summary t.Summary = task.Summary
t.Sources = task.Sources t.Sources = task.Sources

View File

@ -22,7 +22,7 @@ func (e *Executor) Status(ctx context.Context, calls ...taskfile.Call) error {
return err return err
} }
if !isUpToDate { if !isUpToDate {
return fmt.Errorf(`task: Task "%s" is not up-to-date`, t.Task) return fmt.Errorf(`task: Task "%s" is not up-to-date`, t.Name())
} }
} }
return nil return nil

View File

@ -272,7 +272,7 @@ func (e *Executor) RunTask(ctx context.Context, call taskfile.Call) error {
if upToDate && preCondMet { if upToDate && preCondMet {
if !e.Silent { if !e.Silent {
e.Logger.Errf(logger.Magenta, `task: Task "%s" is up to date`, t.Task) e.Logger.Errf(logger.Magenta, `task: Task "%s" is up to date`, t.Name())
} }
return nil return nil
} }

View File

@ -32,6 +32,7 @@ func (e *Executor) CompiledTask(call taskfile.Call) (*taskfile.Task, error) {
new := taskfile.Task{ new := taskfile.Task{
Task: origTask.Task, Task: origTask.Task,
Label: r.Replace(origTask.Label),
Desc: r.Replace(origTask.Desc), Desc: r.Replace(origTask.Desc),
Summary: r.Replace(origTask.Summary), Summary: r.Replace(origTask.Summary),
Sources: r.ReplaceSlice(origTask.Sources), Sources: r.ReplaceSlice(origTask.Sources),