mirror of
https://github.com/pocketbase/pocketbase.git
synced 2025-01-21 05:21:34 +02:00
47 lines
908 B
Go
47 lines
908 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
|
|
"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)
|
|
e.Router.GET("/*", apis.StaticDirectoryHandler(os.DirFS(publicDirFlag), true))
|
|
|
|
return nil
|
|
})
|
|
|
|
if err := app.Start(); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|