2023-09-13 08:51:05 +00:00
|
|
|
package pkg
|
|
|
|
|
|
|
|
import (
|
|
|
|
"cli-go/internal/api"
|
2023-09-15 10:55:29 +00:00
|
|
|
"fmt"
|
2023-09-13 08:51:05 +00:00
|
|
|
bolt "go.etcd.io/bbolt"
|
|
|
|
)
|
|
|
|
|
|
|
|
type ClICtrl struct {
|
|
|
|
Client *api.Client
|
|
|
|
DB *bolt.DB
|
2023-09-22 13:37:12 +00:00
|
|
|
// CliKey is the key used to encrypt/decrypt sensitive data stored in the database
|
2023-09-22 16:15:01 +00:00
|
|
|
CliKey []byte
|
|
|
|
KeyHolder *KeyHolder
|
2023-09-13 08:51:05 +00:00
|
|
|
}
|
2023-09-15 10:55:29 +00:00
|
|
|
|
|
|
|
func (c *ClICtrl) Init() error {
|
|
|
|
return c.DB.Update(func(tx *bolt.Tx) error {
|
|
|
|
_, err := tx.CreateBucketIfNotExists([]byte(AccBucket))
|
|
|
|
if err != nil {
|
|
|
|
return fmt.Errorf("create bucket: %s", err)
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
})
|
|
|
|
}
|