func (k *Kindlegen) Process(job J.Job) { job.Progress("Optimizing for Kindle...") defer k.wg.Done() if err := writeHTML(job); err != nil { k.error(job, err.Error()) return } cmd := exec.Command(k.binary, []string{job.HTMLFilename()}...) cmd.Dir = job.Root() out, err := cmd.CombinedOutput() if !fileExists(job.MobiFilePath()) { k.error(job, "failed running kindlegen: %s {output=%s}", err, out) return } job.Progress("Optimization complete...") k.Output <- job }