mirror of
https://github.com/borgbackup/borg.git
synced 2026-03-13 06:05:36 -04:00
give (all) args to open_repository
This commit is contained in:
parent
9c271afefa
commit
c194f3ca1c
1 changed files with 18 additions and 17 deletions
|
|
@ -55,7 +55,8 @@ class Archiver:
|
|||
self.exit_code = EXIT_SUCCESS
|
||||
self.lock_wait = lock_wait
|
||||
|
||||
def open_repository(self, location, create=False, exclusive=False, lock=True):
|
||||
def open_repository(self, args, create=False, exclusive=False, lock=True):
|
||||
location = args.location # note: 'location' must be always present in args
|
||||
if location.proto == 'ssh':
|
||||
repository = RemoteRepository(location, create=create, lock_wait=self.lock_wait, lock=lock)
|
||||
else:
|
||||
|
|
@ -85,7 +86,7 @@ class Archiver:
|
|||
def do_init(self, args):
|
||||
"""Initialize an empty repository"""
|
||||
logger.info('Initializing repository at "%s"' % args.location.canonical_path())
|
||||
repository = self.open_repository(args.location, create=True, exclusive=True)
|
||||
repository = self.open_repository(args, create=True, exclusive=True)
|
||||
key = key_creator(repository, args)
|
||||
manifest = Manifest(key, repository)
|
||||
manifest.key = key
|
||||
|
|
@ -96,7 +97,7 @@ class Archiver:
|
|||
|
||||
def do_check(self, args):
|
||||
"""Check repository consistency"""
|
||||
repository = self.open_repository(args.location, exclusive=args.repair)
|
||||
repository = self.open_repository(args, exclusive=args.repair)
|
||||
if args.repair:
|
||||
msg = ("'check --repair' is an experimental feature that might result in data loss." +
|
||||
"\n" +
|
||||
|
|
@ -115,7 +116,7 @@ class Archiver:
|
|||
|
||||
def do_change_passphrase(self, args):
|
||||
"""Change repository key file passphrase"""
|
||||
repository = self.open_repository(args.location)
|
||||
repository = self.open_repository(args)
|
||||
manifest, key = Manifest.load(repository)
|
||||
key.change_passphrase()
|
||||
return EXIT_SUCCESS
|
||||
|
|
@ -126,7 +127,7 @@ class Archiver:
|
|||
dry_run = args.dry_run
|
||||
t0 = datetime.now()
|
||||
if not dry_run:
|
||||
repository = self.open_repository(args.location, exclusive=True)
|
||||
repository = self.open_repository(args, exclusive=True)
|
||||
manifest, key = Manifest.load(repository)
|
||||
compr_args = dict(buffer=COMPR_BUFFER)
|
||||
compr_args.update(args.compression)
|
||||
|
|
@ -271,7 +272,7 @@ class Archiver:
|
|||
logger.warning('Warning: File system encoding is "ascii", extracting non-ascii filenames will not be supported.')
|
||||
if sys.platform.startswith(('linux', 'freebsd', 'netbsd', 'openbsd', 'darwin', )):
|
||||
logger.warning('Hint: You likely need to fix your locale setup. E.g. install locales and use: LANG=en_US.UTF-8')
|
||||
repository = self.open_repository(args.location)
|
||||
repository = self.open_repository(args)
|
||||
manifest, key = Manifest.load(repository)
|
||||
archive = Archive(repository, key, manifest, args.location.archive,
|
||||
numeric_owner=args.numeric_owner)
|
||||
|
|
@ -313,7 +314,7 @@ class Archiver:
|
|||
|
||||
def do_rename(self, args):
|
||||
"""Rename an existing archive"""
|
||||
repository = self.open_repository(args.location, exclusive=True)
|
||||
repository = self.open_repository(args, exclusive=True)
|
||||
manifest, key = Manifest.load(repository)
|
||||
cache = Cache(repository, key, manifest, lock_wait=self.lock_wait)
|
||||
archive = Archive(repository, key, manifest, args.location.archive, cache=cache)
|
||||
|
|
@ -325,7 +326,7 @@ class Archiver:
|
|||
|
||||
def do_delete(self, args):
|
||||
"""Delete an existing repository or archive"""
|
||||
repository = self.open_repository(args.location, exclusive=True)
|
||||
repository = self.open_repository(args, exclusive=True)
|
||||
manifest, key = Manifest.load(repository)
|
||||
cache = Cache(repository, key, manifest, do_files=args.cache_files, lock_wait=self.lock_wait)
|
||||
if args.location.archive:
|
||||
|
|
@ -368,7 +369,7 @@ class Archiver:
|
|||
self.print_error('%s: Mountpoint must be a writable directory' % args.mountpoint)
|
||||
return self.exit_code
|
||||
|
||||
repository = self.open_repository(args.location)
|
||||
repository = self.open_repository(args)
|
||||
try:
|
||||
manifest, key = Manifest.load(repository)
|
||||
if args.location.archive:
|
||||
|
|
@ -388,7 +389,7 @@ class Archiver:
|
|||
|
||||
def do_list(self, args):
|
||||
"""List archive or repository contents"""
|
||||
repository = self.open_repository(args.location)
|
||||
repository = self.open_repository(args)
|
||||
manifest, key = Manifest.load(repository)
|
||||
if args.location.archive:
|
||||
archive = Archive(repository, key, manifest, args.location.archive)
|
||||
|
|
@ -432,7 +433,7 @@ class Archiver:
|
|||
|
||||
def do_info(self, args):
|
||||
"""Show archive details such as disk space used"""
|
||||
repository = self.open_repository(args.location)
|
||||
repository = self.open_repository(args)
|
||||
manifest, key = Manifest.load(repository)
|
||||
cache = Cache(repository, key, manifest, do_files=args.cache_files, lock_wait=self.lock_wait)
|
||||
archive = Archive(repository, key, manifest, args.location.archive, cache=cache)
|
||||
|
|
@ -451,7 +452,7 @@ class Archiver:
|
|||
|
||||
def do_prune(self, args):
|
||||
"""Prune repository archives according to specified rules"""
|
||||
repository = self.open_repository(args.location, exclusive=True)
|
||||
repository = self.open_repository(args, exclusive=True)
|
||||
manifest, key = Manifest.load(repository)
|
||||
cache = Cache(repository, key, manifest, do_files=args.cache_files, lock_wait=self.lock_wait)
|
||||
archives = manifest.list_archive_infos(sort_by='ts', reverse=True) # just a ArchiveInfo list
|
||||
|
|
@ -515,7 +516,7 @@ class Archiver:
|
|||
|
||||
def do_debug_dump_archive_items(self, args):
|
||||
"""dump (decrypted, decompressed) archive items metadata (not: data)"""
|
||||
repository = self.open_repository(args.location)
|
||||
repository = self.open_repository(args)
|
||||
manifest, key = Manifest.load(repository)
|
||||
archive = Archive(repository, key, manifest, args.location.archive)
|
||||
for i, item_id in enumerate(archive.metadata[b'items']):
|
||||
|
|
@ -529,7 +530,7 @@ class Archiver:
|
|||
|
||||
def do_debug_get_obj(self, args):
|
||||
"""get object contents from the repository and write it into file"""
|
||||
repository = self.open_repository(args.location)
|
||||
repository = self.open_repository(args)
|
||||
manifest, key = Manifest.load(repository)
|
||||
hex_id = args.id
|
||||
try:
|
||||
|
|
@ -549,7 +550,7 @@ class Archiver:
|
|||
|
||||
def do_debug_put_obj(self, args):
|
||||
"""put file(s) contents into the repository"""
|
||||
repository = self.open_repository(args.location)
|
||||
repository = self.open_repository(args)
|
||||
manifest, key = Manifest.load(repository)
|
||||
for path in args.paths:
|
||||
with open(path, "rb") as f:
|
||||
|
|
@ -562,7 +563,7 @@ class Archiver:
|
|||
|
||||
def do_debug_delete_obj(self, args):
|
||||
"""delete the objects with the given IDs from the repo"""
|
||||
repository = self.open_repository(args.location)
|
||||
repository = self.open_repository(args)
|
||||
manifest, key = Manifest.load(repository)
|
||||
modified = False
|
||||
for hex_id in args.ids:
|
||||
|
|
@ -584,7 +585,7 @@ class Archiver:
|
|||
|
||||
def do_break_lock(self, args):
|
||||
"""Break the repository lock (e.g. in case it was left by a dead borg."""
|
||||
repository = self.open_repository(args.location, lock=False)
|
||||
repository = self.open_repository(args, lock=False)
|
||||
try:
|
||||
repository.break_lock()
|
||||
Cache.break_lock(repository)
|
||||
|
|
|
|||
Loading…
Reference in a new issue