NewBoltHold creates a new bolt hold
(filename string)
| 14 | |
| 15 | // NewBoltHold creates a new bolt hold |
| 16 | func NewBoltHold(filename string) (*bh.Store, error) { |
| 17 | err := os.MkdirAll(filepath.Dir(filename), 0755) |
| 18 | if err != nil { |
| 19 | return nil, errors.Trace(err) |
| 20 | } |
| 21 | ops := &bh.Options{} |
| 22 | ops.Options = bolt.DefaultOptions |
| 23 | ops.Timeout = time.Second * 10 |
| 24 | ops.Encoder = func(value interface{}) ([]byte, error) { |
| 25 | return json.Marshal(value) |
| 26 | } |
| 27 | ops.Decoder = func(data []byte, value interface{}) error { |
| 28 | return json.Unmarshal(data, value) |
| 29 | } |
| 30 | sto, err := bh.Open(filename, 0666, ops) |
| 31 | if err != nil { |
| 32 | log.L().Error("failed to open bolthold", log.Any("path", filename)) |
| 33 | return nil, errors.Trace(err) |
| 34 | } |
| 35 | return sto, nil |
| 36 | } |
no outgoing calls