about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAlan Pearce2024-04-27 20:29:42 +0200
committerAlan Pearce2024-04-27 20:38:36 +0200
commit300e24c179e390e9d3f5aeab4471c97f17f1fa64 (patch)
treedf83e33aa17fcfd2fe58a232acd7a12f9d9109ee
parentfe2715d330402ad67fe866471bed89c7238ad2ec (diff)
downloadwebsite-300e24c179e390e9d3f5aeab4471c97f17f1fa64.tar.lz
website-300e24c179e390e9d3f5aeab4471c97f17f1fa64.tar.zst
website-300e24c179e390e9d3f5aeab4471c97f17f1fa64.zip
don't panic inside internal packages, return error instead
-rw-r--r--internal/builder/builder.go2
-rw-r--r--internal/server/server.go13
2 files changed, 8 insertions, 7 deletions
diff --git a/internal/builder/builder.go b/internal/builder/builder.go
index dd34245..4bb3b21 100644
--- a/internal/builder/builder.go
+++ b/internal/builder/builder.go
@@ -54,7 +54,7 @@ func build(outDir string, config config.Config) error {
 		PermissionControl: cp.AddPermission(0755),
 	})
 	if err != nil {
-		log.Panic(errors.Errorf("could not copy static files: %v", err))
+		return errors.WithMessage(err, "could not copy static files")
 	}
 
 	if err := mkdirp(publicDir, "post"); err != nil {
diff --git a/internal/server/server.go b/internal/server/server.go
index d22ea62..9c43fdc 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -17,6 +17,7 @@ import (
 
 	"github.com/getsentry/sentry-go"
 	sentryhttp "github.com/getsentry/sentry-go/http"
+	"github.com/pkg/errors"
 	"github.com/shengyanli1982/law"
 )
 
@@ -105,20 +106,20 @@ func fixupMIMETypes() {
 	}
 }
 
-func Start(runtimeConfig *Config) {
+func Start(runtimeConfig *Config) error {
 	fixupMIMETypes()
 
-	c, err := cfg.GetConfig()
+	var err error
+	config, err = cfg.GetConfig()
 	if err != nil {
-		log.Panicf("parsing configuration file: %v", err)
+		return nil, errors.WithMessage(err, "error parsing configuration file")
 	}
-	config = c
 
 	prefix := path.Join(runtimeConfig.Root, "public")
 	slog.Debug("registering content files", "prefix", prefix)
 	err = registerContentFiles(prefix)
 	if err != nil {
-		log.Panicf("registering content files: %v", err)
+		return nil, errors.WithMessagef(err, "registering content files")
 	}
 
 	env := "development"
@@ -133,7 +134,7 @@ func Start(runtimeConfig *Config) {
 		Environment:      env,
 	})
 	if err != nil {
-		log.Panic("could not set up sentry")
+		return nil, errors.WithMessage(err, "could not set up sentry")
 	}
 	defer sentry.Flush(2 * time.Second)
 	sentryHandler := sentryhttp.New(sentryhttp.Options{