minor fm_driver tweaks

Move definition of Work struct until just before it's used,
and show one of the sources as an example at kickoff-level step.

These are just cosmetic/refactors.

Change-Id: Ib23b9379683b9867e097c8d68ef8736013719cee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369356
Reviewed-by: Eric Boren <borenet@google.com>
diff --git a/infra/bots/task_drivers/fm_driver/fm_driver.go b/infra/bots/task_drivers/fm_driver/fm_driver.go
index 7ea796c..f04b88f 100644
--- a/infra/bots/task_drivers/fm_driver/fm_driver.go
+++ b/infra/bots/task_drivers/fm_driver/fm_driver.go
@@ -180,14 +180,6 @@
 		}()
 	}
 
-	type Work struct {
-		Ctx      context.Context
-		WG       *sync.WaitGroup
-		Failures *int32
-		Sources  []string // Passed to FM -s: names of gms/tests, paths to images, .skps, etc.
-		Flags    []string // Other flags to pass to FM: --ct 565, --msaa 16, etc.
-	}
-
 	var worker func(context.Context, []string, []string) int
 	worker = func(ctx context.Context, sources, flags []string) (failures int) {
 		stdout := &bytes.Buffer{}
@@ -263,6 +255,13 @@
 		return
 	}
 
+	type Work struct {
+		Ctx      context.Context
+		WG       *sync.WaitGroup
+		Failures *int32
+		Sources  []string // Passed to FM -s: names of gms/tests, paths to images, .skps, etc.
+		Flags    []string // Other flags to pass to FM: --ct 565, --msaa 16, etc.
+	}
 	queue := make(chan Work, 1<<20) // Arbitrarily huge buffer to avoid ever blocking.
 
 	for i := 0; i < runtime.NumCPU(); i++ {
@@ -301,7 +300,8 @@
 
 		// For organizational purposes, create a step representing this call to kickoff(),
 		// with each batch of sources nested inside.
-		ctx := startStep(ctx, td.Props(strings.Join(flags, " ")))
+		ctx := startStep(ctx,
+			td.Props(fmt.Sprintf("%s, %s…", strings.Join(flags, " "), sources[0])))
 		pendingBatches := &sync.WaitGroup{}
 		failures := new(int32)