diff --git a/.bin/Scripts/functions/common.py b/.bin/Scripts/functions/common.py index 4b9727d7..437591cb 100644 --- a/.bin/Scripts/functions/common.py +++ b/.bin/Scripts/functions/common.py @@ -132,7 +132,7 @@ def exit_script(return_value=0): # Open Log (if it exists) log = global_vars.get('LogFile', '') - if log and os.path.exists(log): + if log and os.path.exists(log) and psutil.WINDOWS: try: extract_item('NotepadPlusPlus', silent=True) popen_program( @@ -359,7 +359,7 @@ def print_warning(*args, **kwargs): def print_log(message='', end='\n', timestamp=True): time_str = time.strftime("%Y-%m-%d %H%M%z: ") if timestamp else '' - if 'LogFile' in global_vars and global_vars['LogFile'] is not None: + if 'LogFile' in global_vars and global_vars['LogFile']: with open(global_vars['LogFile'], 'a', encoding='utf-8') as f: for line in message.splitlines(): f.write('{timestamp}{line}{end}'.format( diff --git a/.bin/Scripts/functions/hw_diags.py b/.bin/Scripts/functions/hw_diags.py index 7260c466..f0a43ecd 100644 --- a/.bin/Scripts/functions/hw_diags.py +++ b/.bin/Scripts/functions/hw_diags.py @@ -88,6 +88,15 @@ def menu_diags(): action_entries = actions, spacer = '──────────────────────────') if selection.isnumeric(): + if diag_modes[int(selection)-1]['Name'] != 'Quick drive test': + # Save log for non-quick tests + ticket_number = get_ticket_number() + global_vars['LogDir'] = '{}/Tickets/{}'.format( + global_vars['Env']['HOME'], + ticket_number) + os.makedirs(global_vars['LogDir'], exist_ok=True) + global_vars['LogFile'] = '{}/Hardware Diagnostics.log'.format( + global_vars['LogDir']) run_tests(diag_modes[int(selection)-1]['Tests']) elif selection == 'A': run_program(['hw-diags-audio'], check=False, pipe=False) @@ -110,6 +119,7 @@ def run_badblocks(): def run_mprime(): aborted = False clear_screen() + print_log('\nStart Prime95 test') TESTS['Prime95']['Status'] = 'Working' update_progress() @@ -135,6 +145,15 @@ def run_mprime(): run_program('killall -s INT mprime'.split(), check=False) run_program(['apple-fans', 'auto']) + # Move logs to Ticket folder + for item in os.scandir(global_vars['TmpDir']): + try: + shutil.move(item.path, global_vars['LogDir']) + except Exception: + print_error('ERROR: Failed to move "{}" to "{}"'.format( + item.path, + global_vars['LogDir'])) + # Update status if aborted: TESTS['Prime95']['Status'] = 'Aborted' @@ -166,6 +185,8 @@ def run_smart(): run_program(['tmux kill-pane -a'.split()], check=False) def run_tests(tests): + print_log('Starting Hardware Diagnostics') + print_log('\nRunning tests: {}'.format(', '.join(tests))) # Enable selected tests for t in ['Prime95', 'NVMe/SMART', 'badblocks']: TESTS[t]['Enabled'] = t in tests