forked from TrueCloudLab/restic
Merge pull request #1899 from garrmcnu/check-cache-dir
check: Use --cache-dir argument
This commit is contained in:
commit
f715bef82f
2 changed files with 16 additions and 1 deletions
12
changelog/unreleased/issue-1880
Normal file
12
changelog/unreleased/issue-1880
Normal file
|
@ -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
|
|
@ -123,6 +123,7 @@ func newReadProgress(gopts GlobalOptions, todo restic.Stat) *restic.Progress {
|
||||||
//
|
//
|
||||||
// * if --with-cache is specified, the default cache is used
|
// * 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 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
|
// * by default, we use a cache in a temporary directory that is deleted after the check
|
||||||
func prepareCheckCache(opts CheckOptions, gopts *GlobalOptions) (cleanup func()) {
|
func prepareCheckCache(opts CheckOptions, gopts *GlobalOptions) (cleanup func()) {
|
||||||
cleanup = func() {}
|
cleanup = func() {}
|
||||||
|
@ -136,8 +137,10 @@ func prepareCheckCache(opts CheckOptions, gopts *GlobalOptions) (cleanup func())
|
||||||
return cleanup
|
return cleanup
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cachedir := gopts.CacheDir
|
||||||
|
|
||||||
// use a cache in a temporary directory
|
// 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 err != nil {
|
||||||
// if an error occurs, don't use any cache
|
// if an error occurs, don't use any cache
|
||||||
Warnf("unable to create temporary directory for cache during check, disabling cache: %v\n", err)
|
Warnf("unable to create temporary directory for cache during check, disabling cache: %v\n", err)
|
||||||
|
|
Loading…
Reference in a new issue