Add TempDirCache to cache TempDir results, fixes #13 #15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an alternative solution to #13. Note that it shares some code (
getDev
) with #14 but addresses separate functionality.This PR adds
TempDirCache
, which is an intelligent cache forTempDir
. Temporary directories can be re-used for all destination directories on the same device.It's not clear how to write an automated test for this, as you'd need either to mount a different filesystem (which the user running the test might not have privileges to do) or mock out
os.Stat
(hooks to do this aren't in place).Instead, I've included
internal/tempdircache_test
which exercises the code. See the comment ininternal/tempdircache_test/main.go
for details, but you can see the cache in action on modern Linux systems with: