cli.go 748 B

123456789101112131415161718192021222324252627282930313233343536
  1. package pkg
  2. import (
  3. "fmt"
  4. "github.com/ente-io/cli/internal/api"
  5. "github.com/ente-io/cli/pkg/secrets"
  6. bolt "go.etcd.io/bbolt"
  7. "os"
  8. "path/filepath"
  9. )
  10. type ClICtrl struct {
  11. Client *api.Client
  12. DB *bolt.DB
  13. KeyHolder *secrets.KeyHolder
  14. tempFolder string
  15. }
  16. func (c *ClICtrl) Init() error {
  17. tempPath := filepath.Join(os.TempDir(), "ente-download")
  18. // create temp folder if not exists
  19. if _, err := os.Stat(tempPath); os.IsNotExist(err) {
  20. err = os.Mkdir(tempPath, 0755)
  21. if err != nil {
  22. return err
  23. }
  24. }
  25. c.tempFolder = tempPath
  26. return c.DB.Update(func(tx *bolt.Tx) error {
  27. _, err := tx.CreateBucketIfNotExists([]byte(AccBucket))
  28. if err != nil {
  29. return fmt.Errorf("create bucket: %s", err)
  30. }
  31. return nil
  32. })
  33. }