Example #1
0
func doMungers(config *config.MungeConfig) error {
	if len(config.IssueMungers) == 0 && len(config.PRMungersList) == 0 {
		glog.Fatalf("must include at least one --issue-mungers or --pr-mungers")
	}
	for {
		nextRunStartTime := time.Now().Add(config.Period)
		if len(config.IssueMungers) > 0 {
			glog.Infof("Running issue mungers")
			if err := issues.MungeIssues(config); err != nil {
				glog.Errorf("Error munging issues: %v", err)
			}
		}
		if len(config.PRMungersList) > 0 {
			glog.Infof("Running PR mungers")
			if err := pulls.MungePullRequests(config); err != nil {
				glog.Errorf("Error munging PRs: %v", err)
			}
		}
		config.ResetAPICount()
		if config.Once {
			break
		}
		if nextRunStartTime.After(time.Now()) {
			sleepDuration := nextRunStartTime.Sub(time.Now())
			glog.Infof("Sleeping for %v\n", sleepDuration)
			time.Sleep(sleepDuration)
		} else {
			glog.Infof("Not sleeping as we took more than %v to complete one loop\n", config.Period)
		}
	}
	return nil
}