mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-21 13:58:08 +00:00
71 lines
1.9 KiB
Python
Executable File
71 lines
1.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
# This file is part of the Trezor project.
|
|
#
|
|
# Copyright (C) 2012-2022 SatoshiLabs and contributors
|
|
#
|
|
# This library is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Lesser General Public License version 3
|
|
# as published by the Free Software Foundation.
|
|
#
|
|
# This library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the License along with this library.
|
|
# If not, see <https://www.gnu.org/licenses/lgpl-3.0.html>.
|
|
|
|
import os
|
|
from typing import List
|
|
|
|
import click
|
|
|
|
from trezorlib.cli import trezorctl
|
|
|
|
DELIMITER_STR = "### ALL CONTENT BELOW IS GENERATED"
|
|
|
|
options_rst = open(os.path.dirname(__file__) + "/../docs/OPTIONS.rst", "r+")
|
|
|
|
lead_in: List[str] = []
|
|
|
|
for line in options_rst:
|
|
lead_in.append(line)
|
|
if DELIMITER_STR in line:
|
|
break
|
|
|
|
options_rst.seek(0)
|
|
options_rst.truncate(0)
|
|
|
|
for line in lead_in:
|
|
options_rst.write(line)
|
|
|
|
|
|
def _print(s: str = "") -> None:
|
|
options_rst.write(s + "\n")
|
|
|
|
|
|
def rst_code_block(help_str: str) -> None:
|
|
_print(".. code::")
|
|
_print()
|
|
for line in help_str.split("\n"):
|
|
_print((" " + line) if line else "")
|
|
_print()
|
|
|
|
|
|
ctx = click.Context(trezorctl.cli, info_name="trezorctl", terminal_width=99)
|
|
rst_code_block(trezorctl.cli.get_help(ctx))
|
|
|
|
for subcommand in sorted(trezorctl.cli.commands):
|
|
cmd = trezorctl.cli.commands[subcommand]
|
|
if not isinstance(cmd, click.Group):
|
|
continue
|
|
|
|
heading = cmd.get_short_help_str(limit=99)
|
|
_print(heading)
|
|
_print("~" * len(heading))
|
|
_print()
|
|
rst_code_block(f"trezorctl {subcommand} --help")
|
|
ctx = click.Context(cmd, info_name=f"trezorctl {subcommand}", terminal_width=99)
|
|
rst_code_block(cmd.get_help(ctx))
|