about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAlan Pearce2024-04-25 12:49:10 +0200
committerAlan Pearce2024-04-25 12:49:10 +0200
commitf94882b9001f3b0855e26b26b4a84b96e3deb22b (patch)
tree12acd2904fcd5d90556ed4aeb78bef4fb4f21620
parente1524c7db6634f9b7c7d2a6073a997a5433594ea (diff)
downloadwebsite-f94882b9001f3b0855e26b26b4a84b96e3deb22b.tar.lz
website-f94882b9001f3b0855e26b26b4a84b96e3deb22b.tar.zst
website-f94882b9001f3b0855e26b26b4a84b96e3deb22b.zip
re-organise module layout
-rw-r--r--cmd/build/main.go6
-rw-r--r--cmd/server/main.go15
-rw-r--r--internal/builder/builder.go (renamed from cmd/build/build.go)16
-rw-r--r--internal/builder/posts.go (renamed from cmd/build/posts.go)2
-rw-r--r--internal/builder/template.go (renamed from cmd/build/template.go)2
-rw-r--r--internal/server/filemap.go (renamed from cmd/server/filemap.go)2
-rw-r--r--internal/server/logging.go (renamed from cmd/server/logging.go)2
-rw-r--r--internal/server/server.go (renamed from cmd/server/server.go)12
8 files changed, 30 insertions, 27 deletions
diff --git a/cmd/build/main.go b/cmd/build/main.go
index 9b6a79b..c619f38 100644
--- a/cmd/build/main.go
+++ b/cmd/build/main.go
@@ -7,6 +7,8 @@ import (
 	"log/slog"
 	"os"
 
+	"website/internal/builder"
+
 	"github.com/BurntSushi/toml"
 	"github.com/ardanlabs/conf/v3"
 	"github.com/pkg/errors"
@@ -18,7 +20,7 @@ func main() {
 	}
 	slog.Debug("starting build process")
 
-	ioConfig := IOConfig{}
+	ioConfig := builder.IOConfig{}
 	if help, err := conf.Parse("", &ioConfig); err != nil {
 		if errors.Is(err, conf.ErrHelpWanted) {
 			fmt.Println(help)
@@ -34,7 +36,7 @@ func main() {
 		}
 	}
 
-	if err := buildSite(ioConfig); err != nil {
+	if err := builder.BuildSite(ioConfig); err != nil {
 		switch cause := errors.Cause(err).(type) {
 		case *fs.PathError:
 			slog.Info("pathError")
diff --git a/cmd/server/main.go b/cmd/server/main.go
index 9fb9f14..f9be765 100644
--- a/cmd/server/main.go
+++ b/cmd/server/main.go
@@ -5,26 +5,19 @@ import (
 	"log"
 	"log/slog"
 	"os"
-	cfg "website/internal/config"
+
+	"website/internal/server"
 
 	"github.com/ardanlabs/conf/v3"
 	"github.com/pkg/errors"
 )
 
-type Config struct {
-	Production             bool    `conf:"default:false"`
-	ListenAddress          string  `conf:"default:localhost"`
-	Port                   uint16  `conf:"default:3000,short:p"`
-	BaseURL                cfg.URL `conf:"default:http://localhost:3000,short:b"`
-	RedirectOtherHostnames bool    `conf:"default:false"`
-}
-
 func main() {
 	if os.Getenv("DEBUG") != "" {
 		slog.SetLogLoggerLevel(slog.LevelDebug)
 	}
 
-	runtimeConfig := Config{}
+	runtimeConfig := server.Config{}
 	help, err := conf.Parse("", &runtimeConfig)
 	if err != nil {
 		if errors.Is(err, conf.ErrHelpWanted) {
@@ -34,5 +27,5 @@ func main() {
 		log.Panicf("parsing runtime configuration: %v", err)
 	}
 
-	startServer(&runtimeConfig)
+	server.Start(&runtimeConfig)
 }
diff --git a/cmd/build/build.go b/internal/builder/builder.go
index 5daa940..dd34245 100644
--- a/cmd/build/build.go
+++ b/internal/builder/builder.go
@@ -1,4 +1,4 @@
-package main
+package builder
 
 import (
 	"fmt"
@@ -16,6 +16,12 @@ import (
 	"github.com/pkg/errors"
 )
 
+type IOConfig struct {
+	Source      string `conf:"default:.,short:s"`
+	Destination string `conf:"default:website,short:d"`
+	BaseURL     config.URL
+}
+
 func mkdirp(dirs ...string) error {
 	return os.MkdirAll(path.Join(dirs...), 0755)
 }
@@ -163,13 +169,7 @@ func build(outDir string, config config.Config) error {
 	return nil
 }
 
-type IOConfig struct {
-	Source      string `conf:"default:.,short:s"`
-	Destination string `conf:"default:website,short:d"`
-	BaseURL     config.URL
-}
-
-func buildSite(ioConfig IOConfig) error {
+func BuildSite(ioConfig IOConfig) error {
 	config, err := config.GetConfig()
 	if err != nil {
 		log.Panic(errors.Errorf("could not get config: %v", err))
diff --git a/cmd/build/posts.go b/internal/builder/posts.go
index f03caf3..223531b 100644
--- a/cmd/build/posts.go
+++ b/internal/builder/posts.go
@@ -1,4 +1,4 @@
-package main
+package builder
 
 import (
 	"bytes"
diff --git a/cmd/build/template.go b/internal/builder/template.go
index 32f408f..07ea0da 100644
--- a/cmd/build/template.go
+++ b/internal/builder/template.go
@@ -1,4 +1,4 @@
-package main
+package builder
 
 import (
 	"encoding/xml"
diff --git a/cmd/server/filemap.go b/internal/server/filemap.go
index 5f7e1bb..466db49 100644
--- a/cmd/server/filemap.go
+++ b/internal/server/filemap.go
@@ -1,4 +1,4 @@
-package main
+package server
 
 import (
 	"fmt"
diff --git a/cmd/server/logging.go b/internal/server/logging.go
index 601baab..135f06e 100644
--- a/cmd/server/logging.go
+++ b/internal/server/logging.go
@@ -1,4 +1,4 @@
-package main
+package server
 
 import (
 	"fmt"
diff --git a/cmd/server/server.go b/internal/server/server.go
index 10144bb..5d45de2 100644
--- a/cmd/server/server.go
+++ b/internal/server/server.go
@@ -1,4 +1,4 @@
-package main
+package server
 
 import (
 	"fmt"
@@ -23,6 +23,14 @@ var Commit string
 
 var config *cfg.Config
 
+type Config struct {
+	Production             bool    `conf:"default:false"`
+	ListenAddress          string  `conf:"default:localhost"`
+	Port                   uint16  `conf:"default:3000,short:p"`
+	BaseURL                cfg.URL `conf:"default:http://localhost:3000,short:b"`
+	RedirectOtherHostnames bool    `conf:"default:false"`
+}
+
 type HTTPError struct {
 	Error   error
 	Message string
@@ -95,7 +103,7 @@ func fixupMIMETypes() {
 	}
 }
 
-func startServer(runtimeConfig *Config) {
+func Start(runtimeConfig *Config) {
 	fixupMIMETypes()
 
 	c, err := cfg.GetConfig()