func spawnWorker(workerName string, queue chan themekit.AssetEvent, client themekit.ThemeClient, eventLog chan themekit.ThemeEvent) { logEvent(workerSpawnEvent(workerName), eventLog) for { asset := <-queue if asset.Asset().IsValid() { workerEvent := basicEvent{ Title: "FS Event", EventType: asset.Type().String(), Target: asset.Asset().Key, etype: "fsevent", Formatter: func(b basicEvent) string { return fmt.Sprintf( "Received %s event on %s", themekit.GreenText(b.EventType), themekit.BlueText(b.Target), ) }, } logEvent(workerEvent, eventLog) logEvent(client.Perform(asset), eventLog) } } }