diff options
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/main.go | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/cmd/main.go b/cmd/main.go index 9f1292f..eaf2450 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -3,8 +3,9 @@ package main import ( "flag" "fmt" - "log" + "log/slog" "net/http" + "os" "time" "git.ofmax.li/go-git-server/internal/admin" @@ -29,17 +30,25 @@ func main() { if newToken { token, hash, err := authz.GenerateNewToken() if err != nil { - log.Fatal(err) + slog.Error("error generating token", err) + os.Exit(1) } fmt.Printf("token: %s\nhash: %s\n", token, hash) return } - adminSvc := admin.NewService(modelPath, policyPath, serverConfigPath, reposDir, mgmtRepo) - adminSvc.InitServer() + adminSvc, err := admin.NewService(modelPath, policyPath, serverConfigPath, reposDir, mgmtRepo) + if err != nil { + slog.Error("exiting due to error", "msg", err) + os.Exit(1) + } + if err := adminSvc.InitServer(); err != nil { + slog.Error("error initializing server", "msg", err) + } tokens := authz.NewTokenMap() - err := tokens.LoadTokensFromFile(tokenFilePath) + err = tokens.LoadTokensFromFile(tokenFilePath) if err != nil { - log.Fatal(err) + slog.Error("error generating token", err) + os.Exit(1) } router := http.NewServeMux() // TODO we don't want to use a global @@ -52,7 +61,8 @@ func main() { ReadHeaderTimeout: 5 * time.Second, Handler: mux, } - log.Fatal(server.ListenAndServe()) + slog.Error("error while running exiting", server.ListenAndServe()) + os.Exit(1) } func init() { |