func archiveChannels(api *slack.Slack, c []slack.Channel, reason string) { var wg sync.WaitGroup for _, channel := range c { fmt.Printf("Archiving #%s (%s) due to %s\n", channel.Name, channel.Id, reason) wg.Add(1) go func(c slack.Channel) { defer wg.Done() if err := api.ArchiveChannel(c.Id); err != nil { message := fmt.Sprintf( "Error archiving channel #%s (%s): %s\n", c.Name, c.Id, err) log.Printf(message) // send error message in a DM to onErrorNotify user/channel onErrorNotify := os.Getenv("ARCHIVEBOT_NOTIFY") if onErrorNotify != "" { params := slack.PostMessageParameters{} if _, _, postMessageError := api.PostMessage( onErrorNotify, message, params); postMessageError != nil { postMessageErrorMessage := fmt.Sprintf( "Error posting error message to Slack: %s\n", postMessageError) log.Printf(postMessageErrorMessage) } } } }(channel) } wg.Wait() }
func archiveChannels(api *slack.Slack, c []slack.Channel, reason string) { var wg sync.WaitGroup for _, channel := range c { fmt.Printf("Archiving #%s (%s) due to %s\n", channel.Name, channel.Id, reason) wg.Add(1) go func(c slack.Channel) { defer wg.Done() if err := api.ArchiveChannel(c.Id); err != nil { log.Printf("Error archiving #%s (%s): %s\n", c.Name, c.Id, err) } }(channel) } wg.Wait() }