Tidying error handling and adding some fluff.
All checks were successful
Go Test / test (push) Successful in 53s
All checks were successful
Go Test / test (push) Successful in 53s
This commit is contained in:
parent
01da611d26
commit
b93d36dacd
@ -5,4 +5,5 @@ RUN go build .
|
||||
|
||||
FROM scratch
|
||||
COPY --from=builder /source/timetable-mgr /bin/timetable-mgr
|
||||
USER 20400
|
||||
CMD [ "/bin/timetable-mgr" ]
|
@ -32,7 +32,7 @@ func CheckCif(cfg *helpers.Configuration) {
|
||||
log.Info("Full CIF download required")
|
||||
err := runCifFullDownload(cfg)
|
||||
if err != nil {
|
||||
log.Error("Unable to run full CIF Update", zap.Error(err))
|
||||
log.Warn("Unable to run full CIF Update", zap.Error(err))
|
||||
}
|
||||
return
|
||||
}
|
||||
@ -61,6 +61,6 @@ func CheckCif(cfg *helpers.Configuration) {
|
||||
log.Info("CIF Update required", zap.Any("days to update", daysToUpdate))
|
||||
err = runCifUpdateDownload(cfg, metadata, daysToUpdate)
|
||||
if err != nil {
|
||||
log.Error("Daily CIF update failed", zap.Error(err))
|
||||
log.Warn("Daily CIF update failed", zap.Error(err))
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ func runCifFullDownload(cfg *helpers.Configuration) error {
|
||||
dataStream, err := nrod.NrodStream(url, cfg)
|
||||
if err != nil {
|
||||
log.Error("Error downloading CIF data", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
// Parse CIF file
|
||||
|
@ -119,7 +119,7 @@ func (c *Configuration) setConfigValue(key, value string) {
|
||||
|
||||
// Provides a method to print the configuration struct. Only when the DEBUG env is set to true
|
||||
func (c *Configuration) PrintConfig() {
|
||||
if os.Getenv("DEBUG") == "true" {
|
||||
if os.Getenv("debug") == "true" {
|
||||
fmt.Println("Configuration:")
|
||||
fmt.Println("VstpOn: ", c.VstpOn)
|
||||
fmt.Println("NrodUser: ", c.NrodUser)
|
||||
|
13
main.go
13
main.go
@ -4,6 +4,7 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
"os/signal"
|
||||
"os/user"
|
||||
"syscall"
|
||||
"time"
|
||||
_ "time/tzdata"
|
||||
@ -31,7 +32,9 @@ func init() {
|
||||
printStartupBanner()
|
||||
fmt.Printf("%sVersion %s \n\n%s", bold+blue, helpers.Version, reset)
|
||||
|
||||
//checkRunAsRoot()
|
||||
// Exits is being run as root
|
||||
// not necessary and not secure
|
||||
checkRunAsRoot()
|
||||
}
|
||||
|
||||
func main() {
|
||||
@ -126,6 +129,14 @@ func printStartupBanner() {
|
||||
func checkRunAsRoot() {
|
||||
uid := os.Getuid()
|
||||
if uid != 0 {
|
||||
currUser, err := user.Current()
|
||||
var msg string
|
||||
if err != nil {
|
||||
msg = "Unable to determine which user is running the application, but is not being run by root"
|
||||
} else {
|
||||
msg = fmt.Sprintf("Running as user: %s, %s", currUser.Uid, currUser.Username)
|
||||
}
|
||||
fmt.Println(blue + msg + reset)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ package nrod
|
||||
|
||||
import (
|
||||
"compress/gzip"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
@ -22,7 +23,6 @@ func NrodStream(url string, cfg *helpers.Configuration) (io.ReadCloser, error) {
|
||||
|
||||
req, err := http.NewRequest("GET", url, nil)
|
||||
if err != nil {
|
||||
log.Error("Error creating HTTP Request", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -34,9 +34,13 @@ func NrodStream(url string, cfg *helpers.Configuration) (io.ReadCloser, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if resp == nil {
|
||||
err = errors.New("http response error - response = nil")
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
err := fmt.Errorf("unexpected status code: %d", resp.StatusCode)
|
||||
log.Error("Non-successful status code", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user