func main()

in slackbot/main.go [23:62]


func main() {
	log.Print("Starting slackbot")
	flag.Parse()
	ctx := context.Background()

	if *webhook == "" {
		log.Fatalf("Slack webhook must be provided.")
	}

	if *buildId == "" {
		log.Fatalf("Build ID must be provided.")
	}

	if *mode == "" {
		log.Fatalf("Mode must be provided.")
	}

	if *mode != "trigger" && *mode != "monitor" {
		log.Fatalf("Mode must be one of: trigger, monitor.")
	}

	projectId, err := slackbot.GetProject()
	if err != nil {
		log.Fatalf("Failed to get project ID: %v", err)
	}

	if *mode == "trigger" {
		// Trigger another build to run the monitor.
		log.Printf("Starting trigger mode for build %s", *buildId)
		slackbot.Trigger(ctx, projectId, *buildId, *webhook, *project, *copyName, *copyTags, *copyTimeout)
		return
	}

	if *mode == "monitor" {
		// Monitor the other build until completion.
		log.Printf("Starting monitor mode for build %s", *buildId)
		slackbot.Monitor(ctx, projectId, *buildId, *webhook, *project)
		return
	}
}