github.com/Benchkram/bob@v0.0.0-20220321080157-7c8f3876e225/bob/bob_stores.go (about)

     1  package bob
     2  
     3  import (
     4  	"os"
     5  	"path/filepath"
     6  
     7  	"github.com/Benchkram/bob/bob/global"
     8  	"github.com/Benchkram/bob/pkg/buildinfostore"
     9  	"github.com/Benchkram/bob/pkg/store"
    10  	"github.com/Benchkram/bob/pkg/store/filestore"
    11  	"github.com/Benchkram/errz"
    12  )
    13  
    14  func DefaultFilestore() (s store.Store, err error) {
    15  	defer errz.Recover(&err)
    16  
    17  	home, err := os.UserHomeDir()
    18  	errz.Fatal(err)
    19  
    20  	storeDir := filepath.Join(home, global.BobCacheArtifactsDir)
    21  	err = os.MkdirAll(storeDir, 0775)
    22  	errz.Fatal(err)
    23  
    24  	return filestore.New(storeDir), nil
    25  }
    26  
    27  func Filestore(dir string) (s store.Store, err error) {
    28  	defer errz.Recover(&err)
    29  
    30  	storeDir := filepath.Join(dir, global.BobCacheArtifactsDir)
    31  	err = os.MkdirAll(storeDir, 0775)
    32  	errz.Fatal(err)
    33  
    34  	return filestore.New(storeDir), nil
    35  }
    36  
    37  func MustDefaultFilestore() store.Store {
    38  	s, _ := DefaultFilestore()
    39  	return s
    40  }
    41  
    42  func DefaultBuildinfoStore() (s buildinfostore.Store, err error) {
    43  	defer errz.Recover(&err)
    44  
    45  	home, err := os.UserHomeDir()
    46  	errz.Fatal(err)
    47  
    48  	storeDir := filepath.Join(home, global.BobCacheBuildinfoDir)
    49  	err = os.MkdirAll(storeDir, 0775)
    50  	errz.Fatal(err)
    51  
    52  	return buildinfostore.New(storeDir), nil
    53  }
    54  
    55  func BuildinfoStore(dir string) (s buildinfostore.Store, err error) {
    56  	defer errz.Recover(&err)
    57  
    58  	storeDir := filepath.Join(dir, global.BobCacheBuildinfoDir)
    59  	err = os.MkdirAll(storeDir, 0775)
    60  	errz.Fatal(err)
    61  
    62  	return buildinfostore.New(storeDir), nil
    63  }
    64  
    65  func MustDefaultBuildinfoStore() buildinfostore.Store {
    66  	s, _ := DefaultBuildinfoStore()
    67  	return s
    68  }
    69  
    70  // Localstore returns the local artifact store
    71  func (b *B) Localstore() store.Store {
    72  	return b.local
    73  }