summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/ponzu/main.go3
-rw-r--r--system/db/init.go16
2 files changed, 19 insertions, 0 deletions
diff --git a/cmd/ponzu/main.go b/cmd/ponzu/main.go
index 25e1694..72f0abf 100644
--- a/cmd/ponzu/main.go
+++ b/cmd/ponzu/main.go
@@ -154,6 +154,9 @@ var serveCmd = &cobra.Command{
admin.Docs(docsport)
}
+ // init search index
+ go db.InitSearchIndex()
+
// save the https port the system is listening on
err := db.PutConfig("https_port", fmt.Sprintf("%d", httpsport))
if err != nil {
diff --git a/system/db/init.go b/system/db/init.go
index a401a2a..173ca6f 100644
--- a/system/db/init.go
+++ b/system/db/init.go
@@ -98,6 +98,22 @@ func Init() {
}()
}
+// InitSearchIndex initializes Search Index for search to be functional
+// This was moved out of db.Init and put to main(), because addoon checker was initializing db together with
+// search indexing initialisation in time when there were no item.Types defined so search index was always empty when using addons.
+// We still have no guarentee whatsoever that item.Types is defined
+// Should be called from a goroutine after SetContent is successful (SortContent requirement)
+func InitSearchIndex() {
+ for t := range item.Types {
+ err := search.MapIndex(t)
+ if err != nil {
+ log.Fatalln(err)
+ return
+ }
+ SortContent(t)
+ }
+}
+
// SystemInitComplete checks if there is at least 1 admin user in the db which
// would indicate that the system has been configured to the minimum required.
func SystemInitComplete() bool {