2025-11-17 15:23:11 +08:00

55 lines
1.3 KiB
Go

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")
}