diff options
Diffstat (limited to 'glances/plugins/help/model.py')
-rw-r--r-- | glances/plugins/help/model.py | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/glances/plugins/help/model.py b/glances/plugins/help/model.py deleted file mode 100644 index 98c0abf7..00000000 --- a/glances/plugins/help/model.py +++ /dev/null @@ -1,183 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of Glances. -# -# SPDX-FileCopyrightText: 2022 Nicolas Hennion <nicolas@nicolargo.com> -# -# SPDX-License-Identifier: LGPL-3.0-only -# - -""" -Help plugin. - -Just a stupid plugin to display the help screen. -""" -import sys -from glances.globals import iteritems -from glances import __version__, psutil_version -from glances.plugins.plugin.model import GlancesPluginModel -from itertools import chain - - -class PluginModel(GlancesPluginModel): - """Glances help plugin.""" - - def __init__(self, args=None, config=None): - """Init the plugin.""" - super(PluginModel, self).__init__(args=args, config=config) - - # Set the config instance - self.config = config - - # We want to display the stat in the curse interface - self.display_curse = True - - # init data dictionary, to preserve insertion order - if sys.version_info < (3, 6): - from collections import OrderedDict - - self.view_data = OrderedDict() - else: - self.view_data = {} - self.generate_view_data() - - def reset(self): - """No stats. It is just a plugin to display the help.""" - - def update(self): - """No stats. It is just a plugin to display the help.""" - - def generate_view_data(self): - """Generate the views.""" - self.view_data['version'] = '{} {}'.format('Glances', __version__) - self.view_data['psutil_version'] = ' with psutil {}'.format(psutil_version) - - try: - self.view_data['configuration_file'] = 'Configuration file: {}'.format(self.config.loaded_config_file) - except AttributeError: - pass - - msg_col = ' {0:1} {1:34}' - msg_header = '{0:39}' - - self.view_data.update( - [ - # First column - # - ('header_sort', msg_header.format('SORT PROCESSES:')), - ('sort_auto', msg_col.format('a', 'Automatically')), - ('sort_cpu', msg_col.format('c', 'CPU%')), - ('sort_io_rate', msg_col.format('i', 'I/O rate')), - ('sort_mem', msg_col.format('m', 'MEM%')), - ('sort_process_name', msg_col.format('p', 'Process name')), - ('sort_cpu_times', msg_col.format('t', 'TIME')), - ('sort_user', msg_col.format('u', 'USER')), - ('header_show_hide', msg_header.format('SHOW/HIDE SECTION:')), - ('show_hide_application_monitoring', msg_col.format('A', 'Application monitoring')), - ('show_hide_diskio', msg_col.format('d', 'Disk I/O')), - ('show_hide_docker', msg_col.format('D', 'Docker')), - ('show_hide_top_extended_stats', msg_col.format('e', 'Top extended stats')), - ('show_hide_filesystem', msg_col.format('f', 'Filesystem')), - ('show_hide_gpu', msg_col.format('G', 'GPU')), - ('show_hide_ip', msg_col.format('I', 'IP')), - ('show_hide_tcp_connection', msg_col.format('K', 'TCP')), - ('show_hide_alert', msg_col.format('l', 'Alert logs')), - ('show_hide_network', msg_col.format('n', 'Network')), - ('show_hide_current_time', msg_col.format('N', 'Time')), - ('show_hide_irq', msg_col.format('Q', 'IRQ')), - ('show_hide_raid_plugin', msg_col.format('R', 'RAID')), - ('show_hide_sensors', msg_col.format('s', 'Sensors')), - ('show_hide_wifi_module', msg_col.format('W', 'Wifi')), - ('show_hide_processes', msg_col.format('z', 'Processes')), - ('show_hide_left_sidebar', msg_col.format('2', 'Left sidebar')), - # Second column - # - ('show_hide_quick_look', msg_col.format('3', 'Quick Look')), - ('show_hide_cpu_mem_swap', msg_col.format('4', 'CPU, MEM, and SWAP')), - ('show_hide_all', msg_col.format('5', 'ALL')), - ('header_toggle', msg_header.format('TOGGLE DATA TYPE:')), - ('toggle_bits_bytes', msg_col.format('b', 'Network I/O, bits/bytes')), - ('toggle_count_rate', msg_col.format('B', 'Disk I/O, count/rate')), - ('toggle_used_free', msg_col.format('F', 'Filesystem space, used/free')), - ('toggle_bar_sparkline', msg_col.format('S', 'Quick Look, bar/sparkline')), - ('toggle_separate_combined', msg_col.format('T', 'Network I/O, separate/combined')), - ('toggle_live_cumulative', msg_col.format('U', 'Network I/O, live/cumulative')), - ('toggle_linux_percentage', msg_col.format('0', 'Load, Linux/percentage')), - ('toggle_cpu_individual_combined', msg_col.format('1', 'CPU, individual/combined')), - ('toggle_gpu_individual_combined', msg_col.format('6', 'GPU, individual/combined')), - ('toggle_short_full', msg_col.format('/', 'Process names, short/full')), - ('header_miscellaneous', msg_header.format('MISCELLANEOUS:')), - ('misc_erase_process_filter', msg_col.format('E', 'Erase process filter')), - ('misc_generate_history_graphs', msg_col.format('g', 'Generate history graphs')), - ('misc_help', msg_col.format('h', 'HELP')), - ('misc_accumulate_processes_by_program', msg_col.format('j', 'Display threads or programs')), - ('misc_increase_nice_process', msg_col.format('+', 'Increase nice process')), - ('misc_decrease_nice_process', msg_col.format('-', 'Decrease nice process (need admin rights)')), - ('misc_kill_process', msg_col.format('k', 'Kill process')), - ('misc_reset_processes_summary_min_max', msg_col.format('M', 'Reset processes summary min/max')), - ('misc_quit', msg_col.format('q', 'QUIT (or Esc or Ctrl-C)')), - ('misc_reset_history', msg_col.format('r', 'Reset history')), - ('misc_delete_warning_alerts', msg_col.format('w', 'Delete warning alerts')), - ('misc_delete_warning_and_critical_alerts', msg_col.format('x', 'Delete warning & critical alerts')), - ('misc_theme_white', msg_col.format('9', 'Optimize colors for white background')), - ('misc_edit_process_filter_pattern', ' ENTER: Edit process filter pattern'), - ] - ) - - def get_view_data(self, args=None): - """Return the view.""" - return self.view_data - - def msg_curse(self, args=None, max_width=None): - """Return the list to display in the curse interface.""" - # Init the return message - ret = [] - - # Build the header message - ret.append(self.curse_add_line(self.view_data['version'], 'TITLE')) - ret.append(self.curse_add_line(self.view_data['psutil_version'])) - ret.append(self.curse_new_line()) - - # Build the configuration file path - if 'configuration_file' in self.view_data: - ret.append(self.curse_add_line(self.view_data['configuration_file'])) - ret.append(self.curse_new_line()) - - ret.append(self.curse_new_line()) - - # key-shortcuts - # - # Collect all values after the 1st key-msg - # in a list of curse-lines. - # - shortcuts = [] - collecting = False - for k, v in iteritems(self.view_data): - if collecting: - pass - elif k == 'header_sort': - collecting = True - else: - continue - shortcuts.append(self.curse_add_line(v)) - # Divide shortcuts into 2 columns - # and if number of schortcuts is even, - # make the 1st column taller (len+1). - # - nlines = (len(shortcuts) + 1) // 2 - ret.extend( - msg - for triplet in zip( - iter(shortcuts[:nlines]), - chain(shortcuts[nlines:], iter(lambda: self.curse_add_line(''), None)), - iter(self.curse_new_line, None), - ) - for msg in triplet - ) - - ret.append(self.curse_new_line()) - ret.append(self.curse_add_line('For an exhaustive list of key bindings:')) - ret.append(self.curse_new_line()) - ret.append(self.curse_add_line('https://glances.readthedocs.io/en/latest/cmds.html#interactive-commands')) - # Return the message with decoration - return ret |