func (p *ProcessPlugin) performAllTasks(j *job.Job) { j.Debugf("Starting process plugin...") defer p.PluginHelper.TrackTime(j, time.Now(), "Process plugin completed in %s.") var response string var err error if p.path != "" { response, err = p.performScriptTask(j) } else if p.templateFile != "" { response, err = p.performTemplateTask(j) } else if p.url != "" { response, err = p.performHTTPTask(j) } else { err = errors.New("Nothing to do!") } if err != nil { if p.flowTag != "" { res := err.Error() + " : " + strings.TrimSpace(string(response)) if res == "" { res = "No output detected." } j.SetFlowError(p.flowTag, map[string]interface{}{"message": res}) } j.ReportError(err) return } j.Debugf("Process output: %s", strings.Replace(response, "\n", "\\n", -1)) if p.flowTag != "" { j.Debugf("Posting flow %s", p.flowTag) } if err := p.analyzeAndSubmitProcessResponse(j, response); err != nil { j.ReportError(errors.New("Unable to analyze process output: " + err.Error())) } }