Reduce file opens during update_progress()

This commit is contained in:
2Shirt 2017-12-23 19:15:19 -07:00
parent 5d6e138d29
commit 19d32dda0b

View file

@ -45,51 +45,58 @@ def get_status_color(s):
return color return color
def update_progress(color=True): def update_progress(color=True):
with open(PROGRESS_FILE, 'w') as f: output = []
if color: if color:
f.write('{BLUE}HW Diagnostics{CLEAR}\n'.format(**COLORS)) output.append('{BLUE}HW Diagnostics{CLEAR}'.format(**COLORS))
f.write('───────────────\n') output.append('───────────────')
if TESTS['Prime95']['Enabled']: if TESTS['Prime95']['Enabled']:
f.write('{BLUE}Prime95{s_color}{status:>8}{CLEAR}\n'.format( output.append('{BLUE}Prime95{s_color}{status:>8}{CLEAR}'.format(
s_color = get_status_color(TESTS['Prime95']['Status']), s_color = get_status_color(TESTS['Prime95']['Status']),
status = TESTS['Prime95']['Status'],
**COLORS))
if TESTS['SMART']['Enabled']:
output.append('{BLUE}SMART{CLEAR}'.format(**COLORS))
for dev, status in sorted(TESTS['SMART']['Devices'].items()):
output.append('{dev}{s_color}{status:>{pad}}{CLEAR}'.format(
dev = dev,
pad = 16-len(dev),
s_color = get_status_color(status),
status = status, status = status,
**COLORS)) **COLORS))
if TESTS['SMART']['Enabled']: if TESTS['badblocks']['Enabled']:
f.write('{BLUE}SMART{CLEAR}\n'.format(**COLORS)) output.append('{BLUE}badblocks{CLEAR}'.format(**COLORS))
for dev, status in sorted(TESTS['SMART']['Devices'].items()): for dev, status in sorted(TESTS['badblocks']['Devices'].items()):
f.write('{dev}{s_color}{status:>{pad}}{CLEAR}\n'.format( output.append('{dev}{s_color}{status:>{pad}}{CLEAR}'.format(
dev = dev, dev = dev,
pad = 16-len(dev), pad = 16-len(dev),
s_color = get_status_color(status), s_color = get_status_color(status),
status = status, status = status,
**COLORS)) **COLORS))
if TESTS['badblocks']['Enabled']: else:
f.write('{BLUE}badblocks{CLEAR}\n'.format(**COLORS)) output.append('HW Diagnostics')
for dev, status in sorted(TESTS['badblocks']['Devices'].items()): output.append('───────────────')
f.write('{dev}{s_color}{status:>{pad}}{CLEAR}\n'.format( if TESTS['Prime95']['Enabled']:
dev = dev, output.append('Prime95{:>8}'.format(TESTS['Prime95']['Status']))
pad = 16-len(dev), if TESTS['SMART']['Enabled']:
s_color = get_status_color(status), output.append('SMART')
status = status, for dev, status in sorted(TESTS['SMART']['Devices'].items()):
**COLORS)) output.append('{}{:>{}}'.format(dev, 16-len(dev), status))
else: if TESTS['badblocks']['Enabled']:
f.write('HW Diagnostics\n') output.append('badblocks')
f.write('───────────────\n') for dev, status in sorted(TESTS['badblocks']['Devices'].items()):
if TESTS['Prime95']['Enabled']: output.append('{}{:>{}}'.format(dev, 16-len(dev), status))
f.write('Prime95{:>8}\n'.format(TESTS['Prime95']['Status']))
if TESTS['SMART']['Enabled']: # Add line-endings
f.write('SMART\n') output = ['{}\n'.format(line) for line in output]
for dev, status in sorted(TESTS['SMART']['Devices'].items()): print(output)
f.write('{}{:>{}}\n'.format(dev, 16-len(dev), status)) pause()
if TESTS['badblocks']['Enabled']:
f.write('badblocks\n') with open(PROGRESS_FILE, 'w') as f:
for dev, status in sorted(TESTS['badblocks']['Devices'].items()): f.writelines(output)
f.write('{}{:>{}}\n'.format(dev, 16-len(dev), status))
def run_tests(tests): def run_tests(tests):
for t in ['Prime95', 'SMART', 'badblocks']: for t in ['Prime95', 'SMART', 'badblocks']:
if t in tests: TESTS[t]['Enabled'] = t in tests
TESTS[t]['Enabled'] = True
TESTS['SMART']['Quick'] = 'Quick' in tests TESTS['SMART']['Quick'] = 'Quick' in tests
# Get (disk) device list # Get (disk) device list
@ -98,8 +105,7 @@ def run_tests(tests):
result = run_program(cmd) result = run_program(cmd)
json_data = json.loads(result.stdout.decode()) json_data = json.loads(result.stdout.decode())
devs = json_data.get('blockdevices', []) devs = json_data.get('blockdevices', [])
devs = ['/dev/'+d['name'] for d in devs if d['type'] == 'disk'] devs = {d['name']: 'Pending' for d in devs if d['type'] == 'disk'}
devs = {d: 'Pending' for d in devs}
TESTS['SMART']['Devices'] = devs TESTS['SMART']['Devices'] = devs
TESTS['badblocks']['Devices'] = devs TESTS['badblocks']['Devices'] = devs
@ -132,7 +138,7 @@ def run_mprime():
# Start test # Start test
run_program(['apple-fans', 'max']) run_program(['apple-fans', 'max'])
pane_sensors.send_keys('watch -c -n1 -t hw-sensors') pane_sensors.send_keys('watch -c -n1 -t hw-sensors')
pane_progress.send_keys('watch -c -n1 -t "{}"'.format(PROGRESS_FILE)) pane_progress.send_keys('watch -c -n1 -t cat "{}"'.format(PROGRESS_FILE))
pane_mprime.send_keys('mprime -t') pane_mprime.send_keys('mprime -t')
#sleep(MPRIME_LIMIT*60) #sleep(MPRIME_LIMIT*60)
sleep(15) sleep(15)