Skip to content

Commit

Permalink
Add more arguments to core.prepare_overlay_install
Browse files Browse the repository at this point in the history
  • Loading branch information
Dummerle committed Feb 4, 2022
1 parent ec3473c commit 16602c1
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 3 deletions.
11 changes: 10 additions & 1 deletion legendary/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -2178,7 +2178,10 @@ def manage_eos_overlay(self, args):

status_queue = MPQueue()

dlm, ares, igame = self.core.prepare_overlay_install(args.path, status_queue=status_queue)
dlm, ares, igame = self.core.prepare_overlay_install(args.path, status_queue=status_queue,
max_workers=args.max_workers,
max_shared_memory=args.shared_memory,
force=args.force)

if old_install := self.core.lgd.get_overlay_install_info():
if old_install.version == igame.version:
Expand Down Expand Up @@ -2825,6 +2828,12 @@ def main():
metavar='<install|update|remove|enable|disable|info>')
eos_overlay_parser.add_argument('--path', dest='path', action='store',
help='Path to the EOS overlay folder to be enabled/installed to.')
eos_overlay_parser.add_argument('--max-shared-memory', dest='shared_memory', action='store', metavar='<size>',
type=int, default=1024**3, help='Maximum amount of shared memory to use (in MiB), default: 1 GiB')
eos_overlay_parser.add_argument('--max-workers', dest='max_workers', action='store', metavar='<num>', default=0,
type=int, help='Maximum amount of download workers, default: min(2 * CPUs, 16)')
eos_overlay_parser.add_argument('--force', dest='force', action='store_true',
help='Download all files / ignore existing (overwrite)')

if os.name != 'nt':
eos_overlay_parser.add_argument('--prefix', dest='prefix', action='store',
Expand Down
14 changes: 12 additions & 2 deletions legendary/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -2033,7 +2033,8 @@ def search_overlay_installs(self, prefix=None):

return found

def prepare_overlay_install(self, path=None, status_queue=None):
def prepare_overlay_install(self, path=None, status_queue=None, max_workers=0, update_interval=1.0, dl_timeout=10,
max_shared_memory=1024 ** 3, force: bool = False):
# start anoymous session for update check if we're not logged in yet
if not self.logged_in:
self.egs.start_session(client_credentials=True)
Expand All @@ -2046,7 +2047,16 @@ def prepare_overlay_install(self, path=None, status_queue=None):
else:
path = path or os.path.join(self.get_default_install_dir(), '.overlay')

dlm = DLManager(path, base_urls[0], status_q=status_queue)
if not force:
filename = clean_filename('overlay.resume')
resume_file = os.path.join(self.lgd.get_tmp_path(), filename)
else:
resume_file = None

dlm = DLManager(path, base_urls[0], status_q=status_queue,
max_workers=max_workers, update_interval=update_interval,
dl_timeout=dl_timeout, max_shared_memory=max_shared_memory,
resume_file=resume_file)
analysis_result = dlm.run_analysis(manifest=manifest)

install_size = analysis_result.install_size
Expand Down

0 comments on commit 16602c1

Please sign in to comment.