diff --git a/.github/workflows/go.yaml b/.github/workflows/go.yaml index 6519107..9c4aaa1 100644 --- a/.github/workflows/go.yaml +++ b/.github/workflows/go.yaml @@ -24,7 +24,7 @@ jobs: mkdir -p ~/.ssh echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/textsender_models_deploy_key chmod 600 ~/.ssh/textsender_models_deploy_key - ssh-keyscan ${{ vars.MY_HOST }} >> ~/.ssh/known_hosts + ssh-keyscan ${{ secrets.MY_HOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) ssh-add -v ~/.ssh/textsender_models_deploy_key diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index a80c57f..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,36 +0,0 @@ -# This file is a template, and might need editing before it works on your project. -# You can copy and paste this template into a new `.gitlab-ci.yml` file. -# You should not add this template to an existing `.gitlab-ci.yml` file by using the `include:` keyword. -# -# To contribute improvements to CI/CD templates, please follow the Development guide at: -# https://docs.gitlab.com/ee/development/cicd/templates.html -# This specific template is located at: -# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Go.gitlab-ci.yml - -image: golang:1.25.3 - -stages: - - test - - build - # - deploy - -format: - stage: test - script: - - go fmt $(go list ./... | grep -v /vendor/) - - go vet $(go list ./... | grep -v /vendor/) - - go test -race $(go list ./... | grep -v /vendor/) - -compile: - stage: build - script: - - make build - - artifacts: - paths: - - mybinaries - -# deploy: - # stage: deploy - # script: echo "Define your deployment script!" - # environment: production diff --git a/Makefile b/Makefile index 3137db4..cf2e15e 100644 --- a/Makefile +++ b/Makefile @@ -6,16 +6,16 @@ GO_VERSION ?= $(shell go version | awk '{print $$3}') .PHONY: build build: go build -ldflags="\ - -X 'git.kundeng.us/phoenix/sender/version.Version=$(VERSION)' \ - -X 'git.kundeng.us/phoenix/sender/version.BuildTime=$(BUILD_TIME)' \ - -X 'git.kundeng.us/phoenix/sender/version.Commit=$(COMMIT)' \ - -X 'git.kundeng.us/phoenix/sender/version.GoVersion=$(GO_VERSION)'" \ - -o sender main.go + -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/version.Version=$(VERSION)' \ - -X 'git.kundeng.us/phoenix/sender/version.BuildTime=$(BUILD_TIME)' \ - -X 'git.kundeng.us/phoenix/sender/version.Commit=$(COMMIT)' \ - -X 'git.kundeng.us/phoenix/sender/version.GoVersion=$(GO_VERSION)'" + -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)'" diff --git a/main.go b/cmd/sender/main.go similarity index 53% rename from main.go rename to cmd/sender/main.go index 45b0123..735501c 100644 --- a/main.go +++ b/cmd/sender/main.go @@ -2,12 +2,13 @@ package main import ( "fmt" + "log" "os" - "git.kundeng.us/phoenix/sender/config" - "git.kundeng.us/phoenix/sender/messaging" - "git.kundeng.us/phoenix/sender/util" - "git.kundeng.us/phoenix/sender/version" + "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() { @@ -19,44 +20,43 @@ func main() { fmt.Println(version.String()) return } else if argCount < 4 { - fmt.Printf("Argument count: %v\n", argCount) - fmt.Println("Provide argument to config file and number file") - os.Exit(-1) + log.Printf("Argument count: %v\n", argCount) + log.Fatal("Provide argument to config file and number file") } configPath, numberPath, messagePath := util.GetPaths(myArgs) - fmt.Printf("Config file path: %s\n", configPath) - fmt.Println("Numbers file path:", numberPath) - fmt.Println("Message path:", messagePath) + 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 { - fmt.Println("Error:", err) + log.Println("Error:", err) return } prepMessage, err := util.ParseMessage(messagePath) if err != nil { - fmt.Println("Error:", err) + log.Println("Error:", err) return } if len(numbers) == 0 || prepMessage.Content == "" { if len(numbers) == 0 { - fmt.Println("No numbers to send") + log.Println("No numbers to send") os.Exit(-1) } else { - fmt.Println("No message to send") + log.Println("No message to send") os.Exit(-1) } } fmt.Println("") - fmt.Println("Message:", prepMessage.Content) + log.Println("Message:", prepMessage.Content) messaging.SendMessages(cfg, numbers, *prepMessage, 5) } diff --git a/go.mod b/go.mod index aaa3481..8f7e9d1 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,8 @@ module git.kundeng.us/phoenix/sender go 1.25.4 require ( - git.kundeng.us/phoenix/swoosh v0.0.2-main-e28e5c6755-556 - git.kundeng.us/phoenix/textsender-models v0.0.9 + git.kundeng.us/phoenix/swoosh v0.0.12 + git.kundeng.us/phoenix/textsender-models v0.0.12 ) require ( @@ -12,5 +12,5 @@ require ( github.com/golang/mock v1.6.0 // indirect github.com/google/uuid v1.6.0 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/twilio/twilio-go v1.28.6 // indirect + github.com/twilio/twilio-go v1.28.8 // indirect ) diff --git a/go.sum b/go.sum index abcefd8..ff26c71 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ -git.kundeng.us/phoenix/swoosh v0.0.2-main-e28e5c6755-556 h1:tf/yiV3ZKN6Bw6ZbEtkCkuxHoxDnyHzzQbXXYLk0rCs= -git.kundeng.us/phoenix/swoosh v0.0.2-main-e28e5c6755-556/go.mod h1:q9KtPPuivADIRO0HeWBduCaGgpVWAQ2LmkcphiOMwzQ= -git.kundeng.us/phoenix/textsender-models v0.0.9 h1:wHEbDLYzMpXQ8OaIf05xFY1V19iTpQogTJEuKInkjEQ= -git.kundeng.us/phoenix/textsender-models v0.0.9/go.mod h1:9iPDQJg1Tc6WMNoW5+f8YKmnosMwlWHJ++hmxNLDEe0= +git.kundeng.us/phoenix/swoosh v0.0.12 h1:OtGUYJzakpzJ0fF2BP/z+maCtEfG+avQUJiCY9LMix8= +git.kundeng.us/phoenix/swoosh v0.0.12/go.mod h1:5J/URwiWcjksaPmczelvBEeLdwB1mACFuhUdtWTheDg= +git.kundeng.us/phoenix/textsender-models v0.0.12 h1:ps9H3FS5LyCwQhAiIvg4vYyfLZZ64dex1y9ytb0o9C4= +git.kundeng.us/phoenix/textsender-models v0.0.12/go.mod h1:9iPDQJg1Tc6WMNoW5+f8YKmnosMwlWHJ++hmxNLDEe0= github.com/beevik/etree v1.1.0/go.mod h1:r8Aw8JqVegEf0w2fDnATrX9VpkMcyFeM0FhwO62wh+A= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -27,8 +27,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/twilio/twilio-go v1.28.6 h1:L/pikXkARmPOzF/gUMeZPP/Lu5mY/wA4XC7sRzS86W4= -github.com/twilio/twilio-go v1.28.6/go.mod h1:FpgNWMoD8CFnmukpKq9RNpUSGXC0BwnbeKZj2YHlIkw= +github.com/twilio/twilio-go v1.28.8 h1:wbFz7Wt4S5mCEaes6FcM/ddcJGIhdjwp/9CHb9e+4fk= +github.com/twilio/twilio-go v1.28.8/go.mod h1:FpgNWMoD8CFnmukpKq9RNpUSGXC0BwnbeKZj2YHlIkw= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= diff --git a/config/config.go b/internal/config/config.go similarity index 61% rename from config/config.go rename to internal/config/config.go index bd813f9..1915afa 100644 --- a/config/config.go +++ b/internal/config/config.go @@ -3,10 +3,10 @@ package config import ( "encoding/json" "flag" - "fmt" + "log" "os" - "git.kundeng.us/phoenix/textsender-models/pkg/config" + "git.kundeng.us/phoenix/textsender-models/tx0/config" ) const ( @@ -24,22 +24,21 @@ func IsVersionFlagPresent() bool { } } -func ParseConfig(filepath string) (config config.TwiloConfig, success bool) { +func ParseConfig(filepath string) (config config.TwilioConfig, success bool) { content, err := os.ReadFile(filepath) - fmt.Println("Reading config file...") - fmt.Printf("%s\n", filepath) + log.Println("Reading config file...") + log.Println(filepath) if err != nil { - fmt.Println("An error reading the file") - + log.Println("An error reading the file") return } err = json.Unmarshal(content, &config) if err != nil { - fmt.Println("An error occurred") + log.Println("An error occurred") return config, false } diff --git a/internal/messaging/messaging.go b/internal/messaging/messaging.go new file mode 100644 index 0000000..89a12b3 --- /dev/null +++ b/internal/messaging/messaging.go @@ -0,0 +1,46 @@ +package messaging + +import ( + "encoding/json" + "log" + "time" + + "git.kundeng.us/phoenix/swoosh/swoop/send" + cnfg "git.kundeng.us/phoenix/textsender-models/tx0/config" + "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) + } + } +} diff --git a/util/util.go b/internal/util/util.go similarity index 75% rename from util/util.go rename to internal/util/util.go index 0495c75..cd92780 100644 --- a/util/util.go +++ b/internal/util/util.go @@ -2,11 +2,11 @@ package util import ( "encoding/json" - "fmt" + "log" "os" - "git.kundeng.us/phoenix/textsender-models/pkg/contact" - "git.kundeng.us/phoenix/textsender-models/pkg/message" + "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) { @@ -23,11 +23,11 @@ func ParseNumbers(filepath string) (numbers [](contact.Contact), err error) { content, err := os.ReadFile(filepath) if err != nil { - fmt.Println("An error occurred") + log.Println("An error occurred") return numbers, err } else { if err = json.Unmarshal(content, &nmbrs); err != nil { - fmt.Println("An error occurred:", err) + log.Println("An error occurred:", err) return numbers, err } else { return nmbrs, nil @@ -42,14 +42,14 @@ func ParseMessage(filepath string) (*message.Message, error) { content, err := os.ReadFile(filepath) if err != nil { - fmt.Println("An error occurred") + log.Println("An error occurred") return nil, err } err = json.Unmarshal(content, &msg) if err != nil { - fmt.Println("An error occurred") + log.Println("An error occurred") return nil, err } diff --git a/version/version.go b/internal/version/version.go similarity index 100% rename from version/version.go rename to internal/version/version.go diff --git a/messaging/messaging.go b/messaging/messaging.go deleted file mode 100644 index 4426ee0..0000000 --- a/messaging/messaging.go +++ /dev/null @@ -1,45 +0,0 @@ -package messaging - -import ( - "encoding/json" - "fmt" - "time" - - "git.kundeng.us/phoenix/swoosh/swoop/send" - cnfg "git.kundeng.us/phoenix/textsender-models/pkg/config" - "git.kundeng.us/phoenix/textsender-models/pkg/contact" - msg "git.kundeng.us/phoenix/textsender-models/pkg/message" -) - -func SendMessages(config cnfg.TwiloConfig, numbers [](contact.Contact), message msg.Message, secondInterval int) { - fmt.Println("Sending message") - - longSleepLimit := 5 - count := 0 - - var snr send.MessageSender - snr.Config = config - - for _, number := range numbers { - numberToSend := number - fmt.Println("Sending to: " + numberToSend.PhoneNumber) - - if resp, err := snr.Send(message, number, nil); err != nil { - fmt.Println("Error sending:", err) - } else { - if response, err := json.Marshal(*resp); err != nil { - fmt.Println("Error parsing:", err) - } else { - fmt.Println("Response:", string(response)) - } - } - - if count%longSleepLimit == 0 { - // sleep for X seconds - tme := 1 * time.Second - time.Sleep(tme) - } else { - time.Sleep(time.Second) - } - } -} diff --git a/models/twilio_details.go b/models/twilio_details.go deleted file mode 100644 index 0953877..0000000 --- a/models/twilio_details.go +++ /dev/null @@ -1,9 +0,0 @@ -package models - -import ( - cnfg "git.kundeng.us/phoenix/textsender-models/pkg/config" -) - -func Init() cnfg.TwiloConfig { - return cnfg.TwiloConfig{} -}