Skip the main menu when resuming to Auto Repairs

Fixes issue #205
This commit is contained in:
2Shirt 2022-12-15 20:03:05 -08:00
parent 137c3ec5e5
commit 0ce8169e6b
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C

View file

@ -251,7 +251,7 @@ def get_entry_settings(group, name):
return settings
def init(menus):
def init(menus, presets):
"""Initialize Auto Repairs."""
session_started = is_session_started()
@ -263,17 +263,18 @@ def init(menus):
reg_set_value('HKCU', AUTO_REPAIR_KEY, 'Use Autologon', 0, 'DWORD')
save_selection_settings(menus)
# Start or resume a repair session
if session_started:
load_settings(menus)
print_info('Resuming session, press CTRL+c to cancel')
for _x in range(AUTO_REPAIR_DELAY_IN_SECONDS, 0, -1):
print(f' {_x} second{"" if _x==1 else "s"} remaining... \r', end='')
sleep(1)
print('')
# Start new session
if not session_started:
load_preset(menus, presets, enable_menu_exit=False)
return
# Done
return session_started
# Resume session
load_settings(menus)
print_info('Resuming session, press CTRL+c to cancel')
for _x in range(AUTO_REPAIR_DELAY_IN_SECONDS, 0, -1):
print(f' {_x} second{"" if _x==1 else "s"} remaining... \r', end='')
sleep(1)
print('')
def init_run(options):
@ -407,18 +408,18 @@ def run_auto_repairs(base_menus, presets):
print_standard('Initializing...')
menus = build_menus(base_menus, title, presets)
# Get repair preset
load_preset(menus, presets, enable_menu_exit=False)
# Init
session_started = False
show_menu_again = False
try:
session_started = init(menus)
init(menus, presets)
except KeyboardInterrupt:
# Assuming session was started and resume countdown was interrupted
session_started = None
show_menu_again = True
session_started = is_session_started()
# Show Menu
if session_started is None or not session_started:
if show_menu_again or not session_started:
try:
show_main_menu(base_menus, menus, presets, title)
except SystemExit:
@ -426,10 +427,6 @@ def run_auto_repairs(base_menus, presets):
end_session()
raise
# Re-check if a repair session was started
if session_started is None:
session_started = is_session_started()
# Start or resume repairs
clear_screen()
print_standard(title)