Cache handling
darkdragon-001 opened this issue · 5 comments
Optimized cache management is important to keep cloud storage costs under control.
I would like to use --cache-dir
for all operations. Having this built-in makes sure I don't forget it for any command.
The other options like --with-cache
/--no-cache
can be specified via -- --option
if you don't want to add official support.
Furthermore, behavior different from restic default should be documented:
runrestic/runrestic/restic/tools.py
Lines 89 to 92 in 7622739
I thank you for all your comments. You clearly know what you're talking about.
Would you mind create a PR or two for some of the suggestions you're making?
Cheers
How should it go in the config file?
So according to restic
, it should work to just set XDG_CACHE_DIR because all restic commands seem to honor that. However I know I put in logic that is thwarting that at the moment. So I suggest we throw out the custom if os.geteuid() == 0:
logic. Next we recommend setting XDG_CACHE_DIR in [environment]
in the docs and lastly print a warning on running runrestic when no explicit XDG_CACHE_DIR is set to let the user know what runrestic assumes then.
i.e.: [warning] You have not explicitily set XDG_CACHE_DIR. Falling back to /var/cache/
I just noticed RESTIC_CACHE_DIR
environment variable is also supported. So this can just be used in the config environment section if the user wants to use it! Therefore, I would just remove this code block...
I suggest to add a warning right now that the behavior will change in a future version when one of the quoted code blocks is executed. And then just remove this code in the next bigger update.
I added an issue to get a complete list of environment variables in restic/restic#2763.
You can pass env
to subprocess.Popen()
.
I suggest the following:
env = { name: os.environ[name] for name in ['HOME','XDG_CACHE_DIR','TMPDIR'] if name in os.environ }
env = { **env, **config['environment'] }