diff options
-rw-r--r-- | git2d_deploy.go | 2 | ||||
-rw-r--r-- | git_hooks_deploy.go | 2 | ||||
-rw-r--r-- | http_server.go | 4 | ||||
-rw-r--r-- | main.go | 11 | ||||
-rw-r--r-- | resources.go | 26 | ||||
-rw-r--r-- | server.go | 9 |
6 files changed, 27 insertions, 27 deletions
diff --git a/git2d_deploy.go b/git2d_deploy.go index f3a4cc9..ba63a1b 100644 --- a/git2d_deploy.go +++ b/git2d_deploy.go @@ -13,7 +13,7 @@ func (s *server) deployGit2D() (err error) { var srcFD fs.File var dstFD *os.File - if srcFD, err = resourcesFS.Open("git2d/git2d"); err != nil { + if srcFD, err = embeddedResourcesFS.Open("git2d/git2d"); err != nil { return err } defer srcFD.Close() diff --git a/git_hooks_deploy.go b/git_hooks_deploy.go index ea11d0c..0cfb4f9 100644 --- a/git_hooks_deploy.go +++ b/git_hooks_deploy.go @@ -19,7 +19,7 @@ func (s *server) deployHooks() (err error) { var srcFD fs.File var dstFD *os.File - if srcFD, err = resourcesFS.Open("hookc/hookc"); err != nil { + if srcFD, err = embeddedResourcesFS.Open("hookc/hookc"); err != nil { return err } defer srcFD.Close() diff --git a/http_server.go b/http_server.go index ae82241..7341929 100644 --- a/http_server.go +++ b/http_server.go @@ -87,10 +87,10 @@ func (s *server) ServeHTTP(writer http.ResponseWriter, request *http.Request) { switch segments[1] { case "static": - staticHandler.ServeHTTP(writer, request) + s.staticHandler.ServeHTTP(writer, request) return case "source": - sourceHandler.ServeHTTP(writer, request) + s.sourceHandler.ServeHTTP(writer, request) return } } @@ -6,6 +6,7 @@ package main import ( "errors" "flag" + "io/fs" "log" "log/slog" "net" @@ -26,6 +27,16 @@ func main() { s := server{} + s.sourceHandler = http.StripPrefix( + "/-/source/", + http.FileServer(http.FS(embeddedSourceFS)), + ) + staticFS, err := fs.Sub(embeddedResourcesFS, "static") + if err != nil { + panic(err) + } + s.staticHandler = http.StripPrefix("/-/static/", http.FileServer(http.FS(staticFS))) + if err := s.loadConfig(*configPath); err != nil { slog.Error("loading configuration", "error", err) os.Exit(1) diff --git a/resources.go b/resources.go index 00d7b66..b626f8d 100644 --- a/resources.go +++ b/resources.go @@ -7,7 +7,6 @@ import ( "embed" "html/template" "io/fs" - "net/http" "github.com/tdewolff/minify/v2" "github.com/tdewolff/minify/v2/html" @@ -15,16 +14,11 @@ import ( ) //go:embed LICENSE source.tar.gz -var sourceFS embed.FS - -var sourceHandler = http.StripPrefix( - "/-/source/", - http.FileServer(http.FS(sourceFS)), -) +var embeddedSourceFS embed.FS //go:embed templates/* static/* //go:embed hookc/hookc git2d/git2d -var resourcesFS embed.FS +var embeddedResourcesFS embed.FS var templates *template.Template @@ -45,12 +39,12 @@ func loadTemplates() (err error) { "minus": minus, }) - err = fs.WalkDir(resourcesFS, "templates", func(path string, d fs.DirEntry, err error) error { + err = fs.WalkDir(embeddedResourcesFS, "templates", func(path string, d fs.DirEntry, err error) error { if err != nil { return err } if !d.IsDir() { - content, err := fs.ReadFile(resourcesFS, path) + content, err := fs.ReadFile(embeddedResourcesFS, path) if err != nil { return err } @@ -69,15 +63,3 @@ func loadTemplates() (err error) { }) return err } - -var staticHandler http.Handler - -// This init sets up static handlers. The resulting handlers must be -// used in the HTTP router, and do nothing unless called from elsewhere. -func init() { - staticFS, err := fs.Sub(resourcesFS, "static") - if err != nil { - panic(err) - } - staticHandler = http.StripPrefix("/-/static/", http.FileServer(http.FS(staticFS))) -} @@ -1,6 +1,10 @@ package main -import "github.com/jackc/pgx/v5/pgxpool" +import ( + "net/http" + + "github.com/jackc/pgx/v5/pgxpool" +) type server struct { config Config @@ -9,4 +13,7 @@ type server struct { // Transactions or single reads may be used from it. A [pgxpool.Pool] is // necessary to safely use pgx concurrently; pgx.Conn, etc. are insufficient. database *pgxpool.Pool + + sourceHandler http.Handler + staticHandler http.Handler } |