mirror of
https://github.com/derrod/legendary.git
synced 2024-09-29 08:52:11 +13:00
7609553b12
Existing installations should ask for the install tags that should be used on first update. It will now be easier to add more games as well.
44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
from legendary.utils.selective_dl import games
|
|
|
|
|
|
def get_boolean_choice(prompt, default=True):
|
|
if default:
|
|
yn = 'Y/n'
|
|
else:
|
|
yn = 'y/N'
|
|
|
|
choice = input(f'{prompt} [{yn}]: ')
|
|
if not choice:
|
|
return default
|
|
elif choice[0].lower() == 'y':
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
|
|
def sdl_prompt(app_name, title):
|
|
tags = ['']
|
|
if '__required' in games[app_name]:
|
|
tags.extend(games[app_name]['__required']['tags'])
|
|
|
|
print(f'You are about to install {title}, this game supports selective downloads.')
|
|
print('The following optional packs are available:')
|
|
for tag, info in games[app_name].items():
|
|
if tag == '__required':
|
|
continue
|
|
print(' *', tag, '-', info['name'])
|
|
|
|
print('Please enter a comma-separated list of optional packs to install (leave blank for defaults)')
|
|
examples = ','.join([g for g in games[app_name].keys() if g != '__required'][:2])
|
|
choices = input(f'Additional packs [e.g. {examples}]: ')
|
|
if not choices:
|
|
return tags
|
|
|
|
for c in choices.split(','):
|
|
c = c.strip()
|
|
if c in games[app_name]:
|
|
tags.extend(games[app_name][c]['tags'])
|
|
else:
|
|
print('Invalid tag:', c)
|
|
|
|
return tags
|