From 764263ce0ed5b51b721cb5b1701afc8f7ecf4e16 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Thu, 20 May 2021 10:12:10 -0400 Subject: [PATCH] Have List suggest -W for duplicate jobs (#691) Co-authored-by: Josh Soref Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- cmd/list.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/cmd/list.go b/cmd/list.go index da6e10d..051f5f4 100644 --- a/cmd/list.go +++ b/cmd/list.go @@ -21,17 +21,26 @@ func printList(plan *model.Plan) error { name: "Name", } + jobs := map[string]bool{} + duplicateJobIDs := false + idMaxWidth := len(header.id) stageMaxWidth := len(header.stage) nameMaxWidth := len(header.name) for i, stage := range plan.Stages { for _, r := range stage.Runs { + jobID := r.JobID line := lineInfoDef{ - id: r.JobID, + id: jobID, stage: strconv.Itoa(i), name: r.String(), } + if _, ok := jobs[jobID]; ok { + duplicateJobIDs = true + } else { + jobs[jobID] = true + } lineInfos = append(lineInfos, line) if idMaxWidth < len(line.id) { idMaxWidth = len(line.id) @@ -53,5 +62,8 @@ func printList(plan *model.Plan) error { for _, line := range lineInfos { fmt.Printf("%*s%*s%*s\n", -idMaxWidth, line.id, -stageMaxWidth, line.stage, -nameMaxWidth, line.name) } + if duplicateJobIDs { + fmt.Print("\nDetected multiple jobs with the same job name, use `-W` to specify the path to the specific workflow.\n") + } return nil }