55 lines
1.3 KiB
Go
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")
|
|
}
|