mirror of
https://github.com/borgbackup/borg.git
synced 2025-03-14 16:11:43 +00:00
fix borg config --cache (make sure cache gets closed via try/finally)
(cherry picked from commit 322b442641
)
This commit is contained in:
parent
0405c1a1bb
commit
6783894ff3
1 changed files with 32 additions and 31 deletions
|
@ -1578,38 +1578,39 @@ class Archiver:
|
|||
assert_secure(repository, manifest)
|
||||
cache = Cache(repository, key, manifest, lock_wait=self.lock_wait)
|
||||
|
||||
if args.cache:
|
||||
cache.cache_config.load()
|
||||
config = cache.cache_config._config
|
||||
save = cache.cache_config.save
|
||||
validate = cache_validate
|
||||
else:
|
||||
config = repository.config
|
||||
save = lambda: repository.save_config(repository.path, repository.config)
|
||||
validate = repo_validate
|
||||
try:
|
||||
if args.cache:
|
||||
cache.cache_config.load()
|
||||
config = cache.cache_config._config
|
||||
save = cache.cache_config.save
|
||||
validate = cache_validate
|
||||
else:
|
||||
config = repository.config
|
||||
save = lambda: repository.save_config(repository.path, repository.config)
|
||||
validate = repo_validate
|
||||
|
||||
if args.delete:
|
||||
validate(section, name, check_value=False)
|
||||
config.remove_option(section, name)
|
||||
if len(config.options(section)) == 0:
|
||||
config.remove_section(section)
|
||||
save()
|
||||
elif args.value:
|
||||
validate(section, name, args.value)
|
||||
if section not in config.sections():
|
||||
config.add_section(section)
|
||||
config.set(section, name, args.value)
|
||||
save()
|
||||
else:
|
||||
try:
|
||||
print(config.get(section, name))
|
||||
except (configparser.NoOptionError, configparser.NoSectionError) as e:
|
||||
print(e, file=sys.stderr)
|
||||
return EXIT_WARNING
|
||||
|
||||
if args.cache:
|
||||
cache.close()
|
||||
return EXIT_SUCCESS
|
||||
if args.delete:
|
||||
validate(section, name, check_value=False)
|
||||
config.remove_option(section, name)
|
||||
if len(config.options(section)) == 0:
|
||||
config.remove_section(section)
|
||||
save()
|
||||
elif args.value:
|
||||
validate(section, name, args.value)
|
||||
if section not in config.sections():
|
||||
config.add_section(section)
|
||||
config.set(section, name, args.value)
|
||||
save()
|
||||
else:
|
||||
try:
|
||||
print(config.get(section, name))
|
||||
except (configparser.NoOptionError, configparser.NoSectionError) as e:
|
||||
print(e, file=sys.stderr)
|
||||
return EXIT_WARNING
|
||||
return EXIT_SUCCESS
|
||||
finally:
|
||||
if args.cache:
|
||||
cache.close()
|
||||
|
||||
def do_debug_info(self, args):
|
||||
"""display system information for debugging / bug reports"""
|
||||
|
|
Loading…
Add table
Reference in a new issue