forked from TrueCloudLab/restic
Merge pull request #1973 from restic/announce-new-cache
cache: Print message when new cache is created
This commit is contained in:
commit
16885529f7
3 changed files with 27 additions and 10 deletions
|
@ -376,6 +376,10 @@ func OpenRepository(opts GlobalOptions) (*repository.Repository, error) {
|
||||||
return s, nil
|
return s, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if c.Created && !opts.JSON {
|
||||||
|
Verbosef("created new cache in %v\n", c.Base)
|
||||||
|
}
|
||||||
|
|
||||||
// start using the cache
|
// start using the cache
|
||||||
s.UseCache(c)
|
s.UseCache(c)
|
||||||
|
|
||||||
|
|
11
internal/cache/cache.go
vendored
11
internal/cache/cache.go
vendored
|
@ -19,6 +19,7 @@ import (
|
||||||
type Cache struct {
|
type Cache struct {
|
||||||
Path string
|
Path string
|
||||||
Base string
|
Base string
|
||||||
|
Created bool
|
||||||
PerformReadahead func(restic.Handle) bool
|
PerformReadahead func(restic.Handle) bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,7 +99,7 @@ func New(id string, basedir string) (c *Cache, err error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = mkdirCacheDir(basedir)
|
created, err := mkdirCacheDir(basedir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -121,9 +122,14 @@ func New(id string, basedir string) (c *Cache, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// create the repo cache dir if it does not exist yet
|
// create the repo cache dir if it does not exist yet
|
||||||
if err = fs.MkdirAll(cachedir, dirMode); err != nil {
|
_, err = fs.Lstat(cachedir)
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
err = fs.MkdirAll(cachedir, dirMode)
|
||||||
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
created = true
|
||||||
|
}
|
||||||
|
|
||||||
// update the timestamp so that we can detect old cache dirs
|
// update the timestamp so that we can detect old cache dirs
|
||||||
err = updateTimestamp(cachedir)
|
err = updateTimestamp(cachedir)
|
||||||
|
@ -147,6 +153,7 @@ func New(id string, basedir string) (c *Cache, err error) {
|
||||||
c = &Cache{
|
c = &Cache{
|
||||||
Path: cachedir,
|
Path: cachedir,
|
||||||
Base: basedir,
|
Base: basedir,
|
||||||
|
Created: created,
|
||||||
PerformReadahead: func(restic.Handle) bool {
|
PerformReadahead: func(restic.Handle) bool {
|
||||||
// do not perform readahead by default
|
// do not perform readahead by default
|
||||||
return false
|
return false
|
||||||
|
|
16
internal/cache/dir.go
vendored
16
internal/cache/dir.go
vendored
|
@ -68,25 +68,31 @@ func DefaultDir() (cachedir string, err error) {
|
||||||
return cachedir, nil
|
return cachedir, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func mkdirCacheDir(cachedir string) error {
|
// mkdirCacheDir ensures that the cache directory exists. It it didn't, created
|
||||||
|
// is set to true.
|
||||||
|
func mkdirCacheDir(cachedir string) (created bool, err error) {
|
||||||
|
var newCacheDir bool
|
||||||
|
|
||||||
fi, err := fs.Stat(cachedir)
|
fi, err := fs.Stat(cachedir)
|
||||||
if os.IsNotExist(errors.Cause(err)) {
|
if os.IsNotExist(errors.Cause(err)) {
|
||||||
err = fs.MkdirAll(cachedir, 0700)
|
err = fs.MkdirAll(cachedir, 0700)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrap(err, "MkdirAll")
|
return true, errors.Wrap(err, "MkdirAll")
|
||||||
}
|
}
|
||||||
|
|
||||||
fi, err = fs.Stat(cachedir)
|
fi, err = fs.Stat(cachedir)
|
||||||
debug.Log("create cache dir %v", cachedir)
|
debug.Log("create cache dir %v", cachedir)
|
||||||
|
|
||||||
|
newCacheDir = true
|
||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrap(err, "Stat")
|
return newCacheDir, errors.Wrap(err, "Stat")
|
||||||
}
|
}
|
||||||
|
|
||||||
if !fi.IsDir() {
|
if !fi.IsDir() {
|
||||||
return errors.Errorf("cache dir %v is not a directory", cachedir)
|
return newCacheDir, errors.Errorf("cache dir %v is not a directory", cachedir)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return newCacheDir, nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue