about summary refs log tree commit diff stats
path: root/cmd/build
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/build')
-rw-r--r--cmd/build/main.go31
1 files changed, 14 insertions, 17 deletions
diff --git a/cmd/build/main.go b/cmd/build/main.go
index 0b1cc46..84de2dc 100644
--- a/cmd/build/main.go
+++ b/cmd/build/main.go
@@ -2,27 +2,26 @@ package main
 
 import (
 	"fmt"
-	"io/fs"
 	"os"
 
-	"website/internal/builder"
-	"website/internal/log"
+	"go.alanpearce.eu/website/internal/builder"
+	"go.alanpearce.eu/website/internal/config"
+	"go.alanpearce.eu/x/log"
 
-	"github.com/BurntSushi/toml"
 	"github.com/ardanlabs/conf/v3"
-	"github.com/pkg/errors"
+	"gitlab.com/tozd/go/errors"
 )
 
 func main() {
-	ioConfig := builder.IOConfig{}
-	if help, err := conf.Parse("", &ioConfig); err != nil {
+	ioConfig := &builder.IOConfig{}
+	if help, err := conf.Parse("", ioConfig); err != nil {
 		if errors.Is(err, conf.ErrHelpWanted) {
 			fmt.Println(help)
 			os.Exit(1)
 		}
 		panic("error parsing configuration: " + err.Error())
 	}
-	log.Configure(!ioConfig.Development)
+	log := log.Configure(!ioConfig.Development)
 
 	log.Debug("starting build process")
 	if ioConfig.Source != "." {
@@ -31,16 +30,14 @@ func main() {
 			log.Panic("could not change to source directory")
 		}
 	}
+	cfg, err := config.GetConfig(ioConfig.Source, log)
+	if err != nil {
+		log.Error("could not read config", "error", err)
+	}
 
-	if err := builder.BuildSite(ioConfig); err != nil {
-		switch cause := errors.Cause(err).(type) {
-		case *fs.PathError:
-			log.Error("path error", "error", err)
-		case toml.ParseError:
-			log.Info("parse error", "error", err)
-		default:
-			log.Info("other error", "error", err, "cause", errors.Cause(cause))
-		}
+	_, err = builder.BuildSite(ioConfig, cfg, log)
+	if err != nil {
+		log.Error("could not build site", "error", err)
 		os.Exit(1)
 	}
 }