pocketbase/examples/base/main.go

47 lines
909 B
Go
Raw Normal View History

2022-07-07 05:19:05 +08:00
package main
import (
"log"
2022-09-16 16:18:15 +08:00
"os"
"path/filepath"
2022-09-16 16:18:15 +08:00
"strings"
2022-07-07 05:19:05 +08:00
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/apis"
"github.com/pocketbase/pocketbase/core"
)
2022-09-16 16:18:15 +08:00
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")
}
2022-07-07 05:19:05 +08:00
func main() {
app := pocketbase.New()
2022-09-16 16:18:15 +08:00
var publicDirFlag string
// add "--publicDir" option flag
app.RootCmd.PersistentFlags().StringVar(
&publicDirFlag,
"publicDir",
defaultPublicDir(),
"the directory to serve static files",
)
2022-07-07 05:19:05 +08:00
app.OnBeforeServe().Add(func(e *core.ServeEvent) error {
// serves static files from the provided public dir (if exists)
2022-09-16 16:18:15 +08:00
e.Router.GET("/*", apis.StaticDirectoryHandler(os.DirFS(publicDirFlag), false))
2022-07-07 05:19:05 +08:00
return nil
})
if err := app.Start(); err != nil {
log.Fatal(err)
}
}