diff --git a/changelog/unreleased/issue-1880 b/changelog/unreleased/issue-1880 new file mode 100644 index 000000000..cd144e40a --- /dev/null +++ b/changelog/unreleased/issue-1880 @@ -0,0 +1,12 @@ +Bugfix: Use `--cache-dir` argument for `check` command + +`check` command now uses a temporary sub-directory of the specified directory +if set using the `--cache-dir` argument. If not set, the cache directory is +created in the default temporary directory as before. +In either case a temporary cache is used to ensure the actual repository is +checked (rather than a local copy). + +The `--cache-dir` argument was not used by the `check` command, instead a +cache directory was created in the temporary directory. + +https://github.com/restic/restic/issues/1880 diff --git a/cmd/restic/cmd_check.go b/cmd/restic/cmd_check.go index 33b5f3725..bee7eae54 100644 --- a/cmd/restic/cmd_check.go +++ b/cmd/restic/cmd_check.go @@ -123,6 +123,7 @@ func newReadProgress(gopts GlobalOptions, todo restic.Stat) *restic.Progress { // // * if --with-cache is specified, the default cache 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() {} @@ -136,8 +137,10 @@ func prepareCheckCache(opts CheckOptions, gopts *GlobalOptions) (cleanup func()) 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)