summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--system/db/addon.go6
-rw-r--r--system/db/init.go16
2 files changed, 13 insertions, 9 deletions
diff --git a/system/db/addon.go b/system/db/addon.go
index 8607119..b5c4929 100644
--- a/system/db/addon.go
+++ b/system/db/addon.go
@@ -15,6 +15,12 @@ var (
ErrNoAddonExists = errors.New("No addon exists.")
)
+func init() {
+ if store == nil {
+ Init()
+ }
+}
+
// Addon looks for an addon by its addon_reverse_dns as the key and returns
// the url.Values representation of an addon
func Addon(key string) (url.Values, error) {
diff --git a/system/db/init.go b/system/db/init.go
index e85304c..6bc4753 100644
--- a/system/db/init.go
+++ b/system/db/init.go
@@ -13,14 +13,6 @@ import (
var store *bolt.DB
-func init() {
- var err error
- store, err = bolt.Open("system.db", 0666, nil)
- if err != nil {
- log.Fatalln(err)
- }
-}
-
// Close exports the abillity to close our db file. Should be called with defer
// after call to Init() from the same place.
func Close() {
@@ -32,7 +24,13 @@ func Close() {
// Init creates a db connection, initializes db with required info, sets secrets
func Init() {
- err := store.Update(func(tx *bolt.Tx) error {
+ var err error
+ store, err = bolt.Open("system.db", 0666, nil)
+ if err != nil {
+ log.Fatalln(err)
+ }
+
+ err = store.Update(func(tx *bolt.Tx) error {
// initialize db with all content type buckets & sorted bucket for type
for t := range item.Types {
_, err := tx.CreateBucketIfNotExists([]byte(t))