package main import ( "context" "flag" "log" "strings" "weatherstation/core/internal/config" "weatherstation/core/internal/sms" ) func main() { // Usage: // CORE_SMS_AK, CORE_SMS_SK, CORE_SMS_SIGN, CORE_SMS_TPL, optional CORE_SMS_ENDPOINT // go run ./core/cmd/sms-send --to 17308264374 --msg "Hello Yarnom" --name device-ids --time 2025-01-01 12:00 var to, msg, name, tm string flag.StringVar(&to, "to", "", "comma-separated phone numbers") flag.StringVar(&msg, "msg", "", "message content") flag.StringVar(&name, "name", "", "device IDs/name field for template") flag.StringVar(&tm, "time", "", "time field for template") flag.Parse() cfg := config.Load() scli, err := sms.New(sms.Config{ AccessKeyID: strings.TrimSpace(cfg.SMS.AccessKeyID), AccessKeySecret: strings.TrimSpace(cfg.SMS.AccessKeySecret), SignName: strings.TrimSpace(cfg.SMS.SignName), TemplateCode: strings.TrimSpace(cfg.SMS.TemplateCode), Endpoint: strings.TrimSpace(cfg.SMS.Endpoint), }) if err != nil { log.Fatal(err) } if to == "" { log.Fatal("missing --to") } if msg == "" { log.Fatal("missing --msg") } if tm == "" { tm = "" } if name == "" { name = "" } phones := strings.Split(to, ",") if err := scli.Send(context.Background(), name, msg, tm, phones); err != nil { log.Fatal(err) } log.Println("sms: sent OK") }