diff --git a/.bin/Scripts/functions/ddrescue.py b/.bin/Scripts/functions/ddrescue.py index 3876b580..f9c5da5f 100644 --- a/.bin/Scripts/functions/ddrescue.py +++ b/.bin/Scripts/functions/ddrescue.py @@ -320,6 +320,32 @@ class RecoveryState(): # Safety checks passed self.block_pairs.append(BlockPair(self.mode, source, dest)) + def build_outer_panes(self): + """Build top and side panes.""" + clear_screen() + + # Top + self.panes['Source'] = tmux_split_window( + behind=True, vertical=True, lines=2, + text='{BLUE}Source{CLEAR}'.format(**COLORS)) + + # Started + self.panes['Started'] = tmux_split_window( + lines=SIDE_PANE_WIDTH, target_pane=self.panes['Source'], + text='{BLUE}Started{CLEAR}\n{s}'.format( + s=time.strftime("%Y-%m-%d %H:%M %Z"), + **COLORS)) + + # Destination + self.panes['Destination'] = tmux_split_window( + percent=50, target_pane=self.panes['Source'], + text='{BLUE}Destination{CLEAR}'.format(**COLORS)) + + # Progress + update_sidepane(self) + self.panes['Progress'] = tmux_split_window( + lines=SIDE_PANE_WIDTH, watch=self.progress_out) + def current_pass_done(self): """Checks if pass is done for all block-pairs, returns bool.""" done = True @@ -484,26 +510,6 @@ class RecoveryState(): # Functions -def build_outer_panes(state): - """Build top and side panes.""" - state.panes['Source'] = tmux_split_window( - behind=True, vertical=True, lines=2, - text='{BLUE}Source{CLEAR}'.format(**COLORS)) - state.panes['Started'] = tmux_split_window( - lines=SIDE_PANE_WIDTH, target_pane=state.panes['Source'], - text='{BLUE}Started{CLEAR}\n{s}'.format( - s=time.strftime("%Y-%m-%d %H:%M %Z"), - **COLORS)) - state.panes['Destination'] = tmux_split_window( - percent=50, target_pane=state.panes['Source'], - text='{BLUE}Destination{CLEAR}'.format(**COLORS)) - - # Side pane - update_sidepane(state) - state.panes['Progress'] = tmux_split_window( - lines=SIDE_PANE_WIDTH, watch=state.progress_out) - - def create_path_obj(path): """Create Dev, Dir, or Image obj based on path given.""" obj = None @@ -809,8 +815,7 @@ def menu_ddrescue(source_path, dest_path, run_mode): raise GenericAbort() # Main menu - clear_screen() - build_outer_panes(state) + state.build_outer_panes() fix_tmux_panes(state, forced=True) menu_main(state) diff --git a/.bin/Scripts/functions/hw_diags.py b/.bin/Scripts/functions/hw_diags.py index a70192d0..9e860e9a 100644 --- a/.bin/Scripts/functions/hw_diags.py +++ b/.bin/Scripts/functions/hw_diags.py @@ -537,6 +537,27 @@ class State(): self.ticket_name = None self.ticket_id = None + def build_outer_panes(self): + """Build top and side panes.""" + clear_screen() + + # Top + self.panes['Top'] = tmux_split_window( + behind=True, lines=2, vertical=True, + text=TOP_PANE_TEXT) + + # Started + self.panes['Started'] = tmux_split_window( + lines=SIDE_PANE_WIDTH, target_pane=self.panes['Top'], + text='{BLUE}Started{CLEAR}\n{s}'.format( + s=time.strftime("%Y-%m-%d %H:%M %Z"), + **COLORS)) + + # Progress + self.panes['Progress'] = tmux_split_window( + lines=SIDE_PANE_WIDTH, + watch=self.progress_out) + def init(self): """Remove test objects, set log, and add devices.""" self.disks = [] @@ -626,28 +647,6 @@ class TestObj(): # Functions -def build_outer_panes(state): - """Build top and side panes.""" - clear_screen() - - # Top - state.panes['Top'] = tmux_split_window( - behind=True, lines=2, vertical=True, - text=TOP_PANE_TEXT) - - # Started - state.panes['Started'] = tmux_split_window( - lines=SIDE_PANE_WIDTH, target_pane=state.panes['Top'], - text='{BLUE}Started{CLEAR}\n{s}'.format( - s=time.strftime("%Y-%m-%d %H:%M %Z"), - **COLORS)) - - # Progress - state.panes['Progress'] = tmux_split_window( - lines=SIDE_PANE_WIDTH, - watch=state.progress_out) - - def build_status_string(label, status, info_label=False): """Build status string with appropriate colors.""" status_color = COLORS['CLEAR'] @@ -1064,7 +1063,7 @@ def run_hw_tests(state): # Build Panes update_progress_pane(state) - build_outer_panes(state) + state.build_outer_panes() # Show selected tests and create TestObj()s print_info('Selected Tests:') @@ -1149,7 +1148,7 @@ def run_hw_tests(state): # Rebuild panes update_progress_pane(state) - build_outer_panes(state) + state.build_outer_panes() # Mark unfinished tests as aborted for k, v in state.tests.items():