# # Copyright (c) 2009-2023 Tom Keffer and Matthew Wall # # See the file LICENSE.txt for your rights. # """Generate weewx debug info""" import weecfg import weecfg.extension import weectllib.debug_actions from weeutil.weeutil import bcolors debug_usage = f"""{bcolors.BOLD}weectl debug [--config=FILENAME] [--output=FILENAME]{bcolors.ENDC} """ debug_description = """ Generate a standard suite of system/weewx information to aid in remote debugging. The debug output consists of two parts, the first part containing a snapshot of relevant system/weewx information and the second part a parsed and obfuscated copy of weewx.conf. This output can be redirected to a file and posted when seeking assistance via forums or email. """ debug_epilog = """ weectl debug will attempt to obfuscate obvious personal/private information in weewx.conf such as user names, passwords and API keys; however, the user should thoroughly check the generated output for personal/private information before posting the information publicly. """ def add_subparser(subparsers): debug_parser = subparsers.add_parser('debug', usage=debug_usage, description=debug_description, epilog=debug_epilog, help="Generate debug info.") debug_parser.add_argument('--config', metavar='FILENAME', help=f'Path to configuration file. ' f'Default is "{weecfg.default_config_path}".') debug_parser.add_argument('--output', metavar="FILENAME", help="Redirect output to FILENAME. Default is " "standard output.") debug_parser.set_defaults(func=debug) def debug(namespace): weectllib.debug_actions.debug(namespace.config, output=namespace.output)