From 1f5c3328e58698eb91432b8b83382c35ad3e7744 Mon Sep 17 00:00:00 2001 From: Gani Georgiev Date: Fri, 16 Sep 2022 11:18:15 +0300 Subject: [PATCH] [#470] added --pbPublic flag --- examples/base/main.go | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/examples/base/main.go b/examples/base/main.go index 3e5e2861..abd1cc71 100644 --- a/examples/base/main.go +++ b/examples/base/main.go @@ -2,21 +2,40 @@ package main import ( "log" + "os" "path/filepath" + "strings" - "github.com/labstack/echo/v5" "github.com/pocketbase/pocketbase" "github.com/pocketbase/pocketbase/apis" "github.com/pocketbase/pocketbase/core" ) +func defaultPublicDir() string { + if strings.HasPrefix(os.Args[0], os.TempDir()) { + // most likely ran with go run + return "./pb_public" + } + + return filepath.Join(os.Args[0], "../pb_public") +} + func main() { app := pocketbase.New() + var publicDirFlag string + + // add "--publicDir" option flag + app.RootCmd.PersistentFlags().StringVar( + &publicDirFlag, + "publicDir", + defaultPublicDir(), + "the directory to serve static files", + ) + app.OnBeforeServe().Add(func(e *core.ServeEvent) error { // serves static files from the provided public dir (if exists) - subFs := echo.MustSubFS(e.Router.Filesystem, filepath.Join(app.DataDir(), "../pb_public")) - e.Router.GET("/*", apis.StaticDirectoryHandler(subFs, false)) + e.Router.GET("/*", apis.StaticDirectoryHandler(os.DirFS(publicDirFlag), false)) return nil })