| package fscache |
| |
| import ( |
| "os" |
| "path/filepath" |
| |
| "github.com/pkg/errors" |
| ) |
| |
| // NewNaiveCacheBackend is a basic backend implementation for fscache |
| func NewNaiveCacheBackend(root string) Backend { |
| return &naiveCacheBackend{root: root} |
| } |
| |
| type naiveCacheBackend struct { |
| root string |
| } |
| |
| func (tcb *naiveCacheBackend) Get(id string) (string, error) { |
| d := filepath.Join(tcb.root, id) |
| if err := os.MkdirAll(d, 0700); err != nil { |
| return "", errors.Wrapf(err, "failed to create tmp dir for %s", d) |
| } |
| return d, nil |
| } |
| func (tcb *naiveCacheBackend) Remove(id string) error { |
| return errors.WithStack(os.RemoveAll(filepath.Join(tcb.root, id))) |
| } |