package main import ( "fmt" "gopkg.in/yaml.v2" "io/ioutil" "os" "penahub.gitlab.yandexcloud.net/pena-services/email-tester/model" "penahub.gitlab.yandexcloud.net/pena-services/email-tester/senders" ) type event string var toClient event = "toClient" var reminder event = "reminder" func main() { fmt.Println("Need event type 'toClient' or 'reminder':") var eventFlag string fmt.Scanln(&eventFlag) defer func() { fmt.Println("if you want exit write 'exit'") var exit string fmt.Scanln(&exit) if exit == "exit" { return } }() config, err := loadConfig("config.yaml") if err != nil { fmt.Println(err) return } err = config.Validate() if err != nil { fmt.Println("failed validate config:", err) return } switch eventFlag { case string(toClient): fmt.Println("Processing 'toClient' event") err = senders.ToClientTesting(config) if err != nil { fmt.Println("error process task for toClient test:", err) return } fmt.Println("OK check mailbox") case string(reminder): fmt.Println("Processing 'reminder' event") err = senders.ReminderTesting(config) if err != nil { fmt.Println("error process task for reminder test:", err) return } fmt.Println("OK check mailbox") default: fmt.Println("No event type or unknown event type specified need 'toClient' or 'reminder'") } } func loadConfig(filename string) (model.Config, error) { var config model.Config file, err := os.Open(filename) if err != nil { return config, err } defer file.Close() data, err := ioutil.ReadAll(file) if err != nil { return config, err } err = yaml.Unmarshal(data, &config) if err != nil { return config, err } return config, nil }