all repos — homestead @ 96406af5d2a46d6b19014a560858967d9f8439f1

Code for my website

switch to sqlite

Alan Pearce
commit

96406af5d2a46d6b19014a560858967d9f8439f1

parent

a2200662dd6a3142e48580050006856278404061

1 file changed, 19 insertions(+), 13 deletions(-)

changed files
M internal/website/website.gointernal/website/website.go
@@ -3,7 +3,6 @@
import ( "fmt" "net/http" - "os" "slices" "strings"
@@ -13,7 +12,7 @@ "go.alanpearce.eu/website/internal/config"
ihttp "go.alanpearce.eu/website/internal/http" "go.alanpearce.eu/website/internal/server" "go.alanpearce.eu/website/internal/storage" - "go.alanpearce.eu/website/internal/storage/files" + "go.alanpearce.eu/website/internal/storage/sqlite" "go.alanpearce.eu/website/internal/vcs" "go.alanpearce.eu/website/internal/watcher" "go.alanpearce.eu/website/templates"
@@ -44,7 +43,6 @@ }
builderOptions := &builder.Options{ Source: opts.Source, Development: opts.Development, - Destination: opts.Destination, } repo, exists, err := vcs.CloneOrOpen(&vcs.Options{
@@ -82,16 +80,9 @@ } else {
http.Error(w, err.Message, err.Code) } }) + if opts.Development { - tmpdir, err := os.MkdirTemp("", "website") - if err != nil { - log.Fatal("could not create temporary directory", "error", err) - } - log.Info("using temporary directory", "dir", tmpdir) - website.App.Shutdown = func() { - os.RemoveAll(tmpdir) - } - builderOptions.Destination = tmpdir + opts.DBPath = ":memory:" cfg.CSP.ScriptSrc = slices.Insert(cfg.CSP.ScriptSrc, 0, "'unsafe-inline'") cfg.CSP.ConnectSrc = slices.Insert(cfg.CSP.ConnectSrc, 0, "'self'")
@@ -99,6 +90,11 @@
cfg.BaseURL = opts.BaseURL } + builderOptions.DB, err = sqlite.OpenDB(opts.DBPath) + if err != nil { + return nil, errors.WithMessage(err, "could not open database") + } + website.Domain = cfg.BaseURL.Hostname() err = rebuild(builderOptions, cfg, log)
@@ -128,6 +124,16 @@ }
go fw.Start(func(filename string) { log.Info("rebuilding site", "changed_file", filename) + builderOptions.DB.Close() + builderOptions.DB, err = sqlite.OpenDB(opts.DBPath) + if err != nil { + log.Error("error opening database", "error", err) + } + website.reader, err = sqlite.NewReader(builderOptions.DB, log.Named("reader")) + if err != nil { + log.Error("error creating sqlite reader", "error", err) + } + err := rebuild(builderOptions, cfg, log) if err != nil { log.Error("error rebuilding site", "error", err)
@@ -136,7 +142,7 @@ opts.LiveReload.Reload()
}) } - website.reader, err = files.NewReader(builderOptions.Destination, log.Named("reader")) + website.reader, err = sqlite.NewReader(builderOptions.DB, log.Named("reader")) if err != nil { return nil, errors.WithMessage(err, "error creating sqlite reader") }