-
Notifications
You must be signed in to change notification settings - Fork 1
/
refresh-groups.go
50 lines (39 loc) · 910 Bytes
/
refresh-groups.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package tag_api
import (
"bytes"
"encoding/gob"
"fmt"
"github.com/boltdb/bolt"
)
// Refresh data loaded from Bolt Db
func (bs *BoltService) refreshGroups() {
var err error
// Refresh images
err = bs.boltDb.View(func(tx *bolt.Tx) (e error) {
var bucket *bolt.Bucket
var v, k []byte
bucket = tx.Bucket(bs.settings.boltBucket)
if bucket == nil {
e = fmt.Errorf("Bolt bucket %s not found", bs.settings.boltBucket)
return
}
k = []byte("groups")
v = bucket.Get(k)
if v == nil {
e = fmt.Errorf("Bolt key %s not found", k)
return
}
b := bytes.NewBuffer(v)
dec := gob.NewDecoder(b)
e = dec.Decode(&bs.GroupMap)
if e != nil {
e = fmt.Errorf("Parse GroupMap gob from Bolt: %v", e)
return
}
return
})
if err != nil {
Log.Error.Printf("Refresh Groups: %v\n", err)
}
Log.Info.Printf("Refresh Groups: %d entries loaded from Bolt\n", len(bs.GroupMap))
}