Clear out #2
@@ -1,21 +0,0 @@
|
||||
VERSION ?= $(shell git describe --tags 2>/dev/null || echo "dev")
|
||||
COMMIT ?= $(shell git rev-parse --short HEAD)
|
||||
BUILD_TIME ?= $(shell date -u +%Y-%m-%dT%H:%M:%SZ)
|
||||
GO_VERSION ?= $(shell go version | awk '{print $$3}')
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
go build -ldflags="\
|
||||
-X 'git.kundeng.us/phoenix/sender/internal/version.Version=$(VERSION)' \
|
||||
-X 'git.kundeng.us/phoenix/sender/internal/version.BuildTime=$(BUILD_TIME)' \
|
||||
-X 'git.kundeng.us/phoenix/sender/internal/version.Commit=$(COMMIT)' \
|
||||
-X 'git.kundeng.us/phoenix/sender/internal/version.GoVersion=$(GO_VERSION)'" \
|
||||
-o sender cmd/sender/main.go
|
||||
|
||||
.PHONY: install
|
||||
install:
|
||||
go install -ldflags="\
|
||||
-X 'git.kundeng.us/phoenix/sender/internal/version.Version=$(VERSION)' \
|
||||
-X 'git.kundeng.us/phoenix/sender/internal/version.BuildTime=$(BUILD_TIME)' \
|
||||
-X 'git.kundeng.us/phoenix/sender/internal/version.Commit=$(COMMIT)' \
|
||||
-X 'git.kundeng.us/phoenix/sender/internal/version.GoVersion=$(GO_VERSION)'"
|
||||
@@ -1,12 +0,0 @@
|
||||
# sender
|
||||
sender is a cli program to send text messages.
|
||||
|
||||
## Install twilio
|
||||
```
|
||||
make build
|
||||
```
|
||||
|
||||
## Using
|
||||
```
|
||||
./sender config_path.json numbers_path.json message_path.json
|
||||
```
|
||||
@@ -1,62 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"git.kundeng.us/phoenix/sender/internal/config"
|
||||
"git.kundeng.us/phoenix/sender/internal/messaging"
|
||||
"git.kundeng.us/phoenix/sender/internal/util"
|
||||
"git.kundeng.us/phoenix/sender/internal/version"
|
||||
)
|
||||
|
||||
func main() {
|
||||
myArgs := os.Args
|
||||
argCount := len(myArgs)
|
||||
|
||||
if config.IsVersionFlagPresent() {
|
||||
fmt.Println(config.App_Name)
|
||||
fmt.Println(version.String())
|
||||
return
|
||||
} else if argCount < 4 {
|
||||
log.Printf("Argument count: %v\n", argCount)
|
||||
log.Fatal("Provide argument to config file and number file")
|
||||
}
|
||||
|
||||
configPath, numberPath, messagePath := util.GetPaths(myArgs)
|
||||
|
||||
log.Printf("Config file path: %s\n", configPath)
|
||||
log.Println("Numbers file path:", numberPath)
|
||||
log.Println("Message path:", messagePath)
|
||||
|
||||
cfg, _ := config.ParseConfig(configPath)
|
||||
cfg.PrintConfig()
|
||||
|
||||
numbers, err := util.ParseNumbers(numberPath)
|
||||
if err != nil {
|
||||
log.Println("Error:", err)
|
||||
return
|
||||
}
|
||||
|
||||
prepMessage, err := util.ParseMessage(messagePath)
|
||||
if err != nil {
|
||||
log.Println("Error:", err)
|
||||
return
|
||||
}
|
||||
|
||||
if len(numbers) == 0 || prepMessage.Content == "" {
|
||||
if len(numbers) == 0 {
|
||||
log.Println("No numbers to send")
|
||||
os.Exit(-1)
|
||||
} else {
|
||||
log.Println("No message to send")
|
||||
os.Exit(-1)
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Println("")
|
||||
log.Println("Message:", prepMessage.Content)
|
||||
|
||||
messaging.SendMessages(cfg, numbers, *prepMessage, 5)
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"flag"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
axlry "git.kundeng.us/phoenix/textsender-models/tx0/config/auxiliary"
|
||||
)
|
||||
|
||||
const (
|
||||
App_Name = "sender"
|
||||
)
|
||||
|
||||
func IsVersionFlagPresent() bool {
|
||||
versionFlag := flag.Bool("version", false, "Print version information")
|
||||
flag.Parse()
|
||||
|
||||
if *versionFlag {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
func ParseConfig(filepath string) (config axlry.TwilioConfig, success bool) {
|
||||
content, err := os.ReadFile(filepath)
|
||||
|
||||
log.Println("Reading config file...")
|
||||
log.Println(filepath)
|
||||
|
||||
if err != nil {
|
||||
log.Println("An error reading the file")
|
||||
return
|
||||
}
|
||||
|
||||
err = json.Unmarshal(content, &config)
|
||||
|
||||
if err != nil {
|
||||
log.Println("An error occurred")
|
||||
return config, false
|
||||
}
|
||||
|
||||
return config, true
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
package messaging
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"git.kundeng.us/phoenix/swoosh/swoop/send"
|
||||
cnfg "git.kundeng.us/phoenix/textsender-models/tx0/config/auxiliary"
|
||||
"git.kundeng.us/phoenix/textsender-models/tx0/contact"
|
||||
msg "git.kundeng.us/phoenix/textsender-models/tx0/message"
|
||||
)
|
||||
|
||||
func SendMessages(config cnfg.TwilioConfig, numbers [](contact.Contact), message msg.Message, secondInterval int) {
|
||||
log.Println("Sending message")
|
||||
|
||||
longSleepLimit := 5
|
||||
count := 0
|
||||
|
||||
var snr send.MessageSender
|
||||
snr.Config = &config
|
||||
|
||||
for _, number := range numbers {
|
||||
numberToSend := number
|
||||
log.Println("Sending to: " + numberToSend.PhoneNumber)
|
||||
|
||||
if resp, _, err := snr.Send(message, number, nil); err != nil {
|
||||
log.Println("Error sending:", err)
|
||||
} else {
|
||||
if response, err := json.Marshal(*resp); err != nil {
|
||||
log.Println("Error parsing:", err)
|
||||
} else {
|
||||
log.Println("Response:", string(response))
|
||||
}
|
||||
}
|
||||
|
||||
log.Println("Sleeping")
|
||||
if count%longSleepLimit == 0 {
|
||||
// sleep for X seconds
|
||||
tme := 1 * time.Second
|
||||
time.Sleep(tme)
|
||||
} else {
|
||||
time.Sleep(time.Second)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
package util
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"git.kundeng.us/phoenix/textsender-models/tx0/contact"
|
||||
"git.kundeng.us/phoenix/textsender-models/tx0/message"
|
||||
)
|
||||
|
||||
func GetPaths(args []string) (configPath string, numberPath string, messagePath string) {
|
||||
configPath = args[1]
|
||||
numberPath = args[2]
|
||||
messagePath = args[3]
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func ParseNumbers(filepath string) (numbers [](contact.Contact), err error) {
|
||||
var nmbrs []contact.Contact
|
||||
|
||||
content, err := os.ReadFile(filepath)
|
||||
|
||||
if err != nil {
|
||||
log.Println("An error occurred")
|
||||
return numbers, err
|
||||
} else {
|
||||
if err = json.Unmarshal(content, &nmbrs); err != nil {
|
||||
log.Println("An error occurred:", err)
|
||||
return numbers, err
|
||||
} else {
|
||||
return nmbrs, nil
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func ParseMessage(filepath string) (*message.Message, error) {
|
||||
var msg message.Message
|
||||
|
||||
content, err := os.ReadFile(filepath)
|
||||
|
||||
if err != nil {
|
||||
log.Println("An error occurred")
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(content, &msg)
|
||||
|
||||
if err != nil {
|
||||
log.Println("An error occurred")
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &msg, nil
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package version
|
||||
|
||||
import "fmt"
|
||||
|
||||
var (
|
||||
Version = "dev"
|
||||
BuildTime = "unknown"
|
||||
Commit = "unknown"
|
||||
GoVersion = "unknown"
|
||||
)
|
||||
|
||||
func String() string {
|
||||
return fmt.Sprintf(
|
||||
"Version: %s\nBuild Date: %s\nCommit: %s\nGo Version: %s",
|
||||
Version, BuildTime, Commit, GoVersion,
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user