mirror of
https://github.com/go-task/task.git
synced 2025-03-05 15:05:42 +02:00
quickly print task names only with flags --silent and --list
This commit is contained in:
parent
a018997ddc
commit
978a6e5ecb
@ -158,6 +158,10 @@ func main() {
|
||||
|
||||
OutputStyle: output,
|
||||
}
|
||||
if list && silent {
|
||||
e.PrintTaskNames()
|
||||
return
|
||||
}
|
||||
if err := e.Setup(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
33
help.go
33
help.go
@ -2,7 +2,10 @@ package task
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"sort"
|
||||
"strings"
|
||||
"text/tabwriter"
|
||||
|
||||
"github.com/go-task/task/v3/internal/logger"
|
||||
@ -70,3 +73,33 @@ func (e *Executor) tasksWithDesc() (tasks []*taskfile.Task) {
|
||||
sort.Slice(tasks, func(i, j int) bool { return tasks[i].Task < tasks[j].Task })
|
||||
return
|
||||
}
|
||||
|
||||
// PrintTaskNames prints only the task names in a taskfile.
|
||||
func (e *Executor) PrintTaskNames() error {
|
||||
// if called from cmd/task.go, e.Taskfile has not yet been parsed
|
||||
if nil == e.Taskfile {
|
||||
err := e.readTaskfile()
|
||||
if nil != err {
|
||||
return err
|
||||
}
|
||||
}
|
||||
var w io.Writer = os.Stdout
|
||||
if nil != e.Stdout {
|
||||
w = e.Stdout
|
||||
}
|
||||
|
||||
// create a slice from all map values
|
||||
task := make([]*taskfile.Task, 0, len(e.Taskfile.Tasks))
|
||||
for _, t := range e.Taskfile.Tasks {
|
||||
task = append(task, t)
|
||||
}
|
||||
|
||||
sort.Slice(task,
|
||||
func(i, j int) bool {
|
||||
return task[i].Task < task[j].Task
|
||||
})
|
||||
for _, t := range task {
|
||||
fmt.Fprintf(w, "%s\n", strings.TrimSuffix(t.Task, ":"))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
15
task.go
15
task.go
@ -104,10 +104,21 @@ func (e *Executor) Run(ctx context.Context, calls ...taskfile.Call) error {
|
||||
return g.Wait()
|
||||
}
|
||||
|
||||
// Setup setups Executor's internal state
|
||||
func (e *Executor) Setup() error {
|
||||
// readTaskfile selects and parses the entrypoint.
|
||||
func (e *Executor) readTaskfile() error {
|
||||
// select the default entrypoint if not provided
|
||||
if e.Entrypoint == "" {
|
||||
e.Entrypoint = "Taskfile.yml"
|
||||
}
|
||||
|
||||
var err error
|
||||
e.Taskfile, err = read.Taskfile(e.Dir, e.Entrypoint)
|
||||
return err
|
||||
}
|
||||
|
||||
// Setup setups Executor's internal state
|
||||
func (e *Executor) Setup() error {
|
||||
err := e.readTaskfile()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user