mirror of
https://github.com/derrod/legendary.git
synced 2024-06-27 02:30:30 +12:00
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.
45 lines
1.2 KiB
Python
45 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
|