Clear ddrescue pane every minute
This commit is contained in:
parent
30a5df8a00
commit
e6e51498dd
3 changed files with 18 additions and 9 deletions
|
|
@ -1673,10 +1673,8 @@ def run_ddrescue(state, block_pair, pass_name, settings, dry_run=True):
|
||||||
std.clear_screen()
|
std.clear_screen()
|
||||||
warning_message = ''
|
warning_message = ''
|
||||||
|
|
||||||
def _update_smart_pane(iteration):
|
def _update_smart_pane():
|
||||||
"""Update SMART pane every 30 seconds."""
|
"""Update SMART pane every 30 seconds."""
|
||||||
if iteration % 30 != 0:
|
|
||||||
return
|
|
||||||
state.source.update_smart_details()
|
state.source.update_smart_details()
|
||||||
now = datetime.datetime.now(tz=TIMEZONE).strftime('%Y-%m-%d %H:%M %Z')
|
now = datetime.datetime.now(tz=TIMEZONE).strftime('%Y-%m-%d %H:%M %Z')
|
||||||
with open(f'{state.log_dir}/smart.out', 'w') as _f:
|
with open(f'{state.log_dir}/smart.out', 'w') as _f:
|
||||||
|
|
@ -1691,10 +1689,7 @@ def run_ddrescue(state, block_pair, pass_name, settings, dry_run=True):
|
||||||
|
|
||||||
# Dry run
|
# Dry run
|
||||||
if dry_run:
|
if dry_run:
|
||||||
std.print_info('ddrescue cmd:')
|
LOG.info('ddrescue cmd: %s', cmd)
|
||||||
for _c in cmd:
|
|
||||||
std.print_standard(f' {_c}')
|
|
||||||
std.pause()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
# Start ddrescue
|
# Start ddrescue
|
||||||
|
|
@ -1703,7 +1698,12 @@ def run_ddrescue(state, block_pair, pass_name, settings, dry_run=True):
|
||||||
# ddrescue loop
|
# ddrescue loop
|
||||||
_i = 0
|
_i = 0
|
||||||
while True:
|
while True:
|
||||||
_update_smart_pane(_i)
|
if _i % 30 == 0:
|
||||||
|
# Update SMART pane
|
||||||
|
_update_smart_pane()
|
||||||
|
if _i % 60 == 0:
|
||||||
|
# Clear ddrescue pane
|
||||||
|
tmux.clear_pane()
|
||||||
_i += 1
|
_i += 1
|
||||||
|
|
||||||
# Update progress
|
# Update progress
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
"""WizardKit: Hardware objects (mostly)"""
|
"""WizardKit: Hardware objects (mostly)"""
|
||||||
# vim: sts=2 sw=2 ts=2
|
# vim: sts=2 sw=2 ts=2
|
||||||
# TODO: Get log-sec data under Linux and macOS
|
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import pathlib
|
import pathlib
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,16 @@ def capture_pane(pane_id=None):
|
||||||
return proc.stdout.strip()
|
return proc.stdout.strip()
|
||||||
|
|
||||||
|
|
||||||
|
def clear_pane(pane_id=None):
|
||||||
|
"""Clear pane buffer for current or target pane."""
|
||||||
|
cmd = ['tmux', 'send-keys', '-R']
|
||||||
|
if pane_id:
|
||||||
|
cmd.extend(['-t', pane_id])
|
||||||
|
|
||||||
|
# Clear pane
|
||||||
|
run_program(cmd, check=False)
|
||||||
|
|
||||||
|
|
||||||
def fix_layout(panes, layout, forced=False):
|
def fix_layout(panes, layout, forced=False):
|
||||||
"""Fix pane sizes based on layout."""
|
"""Fix pane sizes based on layout."""
|
||||||
if not (forced or layout_needs_fixed(panes, layout)):
|
if not (forced or layout_needs_fixed(panes, layout)):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue