check: Update --cache-dir argument handling based on code review comments

The temporary cache directory is created in the specified directory, or
if not specified in the default temporary directory.
This commit is contained in:
Garry McNulty
2018-07-22 18:24:11 +01:00
parent f1f69bc648
commit 7603ab7ac1
2 changed files with 11 additions and 9 deletions

View File

@@ -122,8 +122,8 @@ func newReadProgress(gopts GlobalOptions, todo restic.Stat) *restic.Progress {
// prepareCheckCache configures a special cache directory for check.
//
// * if --with-cache is specified, the default cache is used
// * if the user provides --cache-dir, the specified directory is used
// * if the user explicitly requested --no-cache, we don't use any cache
// * if the user provides --cache-dir, we use a cache in a temporary sub-directory of the specified directory and the sub-directory is deleted after the check
// * by default, we use a cache in a temporary directory that is deleted after the check
func prepareCheckCache(opts CheckOptions, gopts *GlobalOptions) (cleanup func()) {
cleanup = func() {}
@@ -132,18 +132,15 @@ func prepareCheckCache(opts CheckOptions, gopts *GlobalOptions) (cleanup func())
return cleanup
}
if gopts.CacheDir != "" {
// use the specified cache directory, no setup needed
return cleanup
}
if gopts.NoCache {
// don't use any cache, no setup needed
return cleanup
}
cachedir := gopts.CacheDir
// use a cache in a temporary directory
tempdir, err := ioutil.TempDir("", "restic-check-cache-")
tempdir, err := ioutil.TempDir(cachedir, "restic-check-cache-")
if err != nil {
// if an error occurs, don't use any cache
Warnf("unable to create temporary directory for cache during check, disabling cache: %v\n", err)