From c8adfd2ef9cd3440f21b266e9c8d6345801e99aa Mon Sep 17 00:00:00 2001 From: ston1th Date: Thu, 30 May 2019 16:03:51 +0200 Subject: [PATCH] panic bugfix --- pkg/db/db.go | 2 +- pkg/db/page.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/db/db.go b/pkg/db/db.go index 445c1c7..3991f2d 100644 --- a/pkg/db/db.go +++ b/pkg/db/db.go @@ -65,7 +65,7 @@ func New(cfg core.Config) (db *DB, err error) { } _, err = db.CreatePage(core.IndexPage, core.WikiSection, welcome, defUser, core.Public) - if err != nil { + if err != errPageExists && err != nil { return } err = db.RunMigrations() diff --git a/pkg/db/page.go b/pkg/db/page.go index 7be2f54..3d6396d 100644 --- a/pkg/db/page.go +++ b/pkg/db/page.go @@ -15,6 +15,7 @@ const pagePrefix = "page/" var ( errPageNotFound = store.ErrKeyNotFound + errPageExists = errors.New("db: page already exists") errPermissionDenied = errors.New("db: permission denied") errInvalidPermission = errors.New("db: invalid permission") errPrivateWikiPage = errors.New("db: private wiki pages are not allowed") @@ -140,6 +141,9 @@ func (db *DB) CreatePage(title, section, markdown, username string, p core.Permi st := render.StoreTitle(section, render.Title(title)) _, err = db.getPage(st, username) if err != store.ErrKeyNotFound { + if err == nil { + err = errPageExists + } return } s, err := db.GetSection(section)