Module snippet.cli

CLI definition.

Expand source code
#
# Copyright (C) 2020 Arm Mbed. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
"""CLI definition."""
import argparse

import os
import sys
import dotenv

from mbed_tools_lib.logging import set_log_level, MbedToolsHandler

from snippet import config
from snippet.api import extract_code_snippets
from snippet._internal.logs import LOGGER


def main() -> int:
    """Script CLI."""
    parser = argparse.ArgumentParser()
    parser.add_argument("--config", type=str, action="append", help="paths (or globs) to config files")
    parser.add_argument(
        "dir",
        nargs="?",
        default=os.getcwd(),
        help="path to project root, used by any relative paths in loaded configs [cwd]",
    )
    parser.add_argument(
        "-v",
        "--verbose",
        action="count",
        default=0,
        help="Set the verbosity level, enter multiple times to increase verbosity.",
    )
    parser.add_argument(
        "-t", "--traceback", action="store_true", default=True, help="Show a traceback when an error is raised."
    )
    args = parser.parse_args()
    set_log_level(args.verbose)
    dotenv.load_dotenv(dotenv.find_dotenv(usecwd=True, raise_error_if_not_found=False))
    # Use the context manager to ensure tools exceptions (expected behaviour) are shown as messages to the user,
    # but all other exceptions (unexpected behaviour) are shown as errors.
    with MbedToolsHandler(LOGGER, args.traceback):
        extract_code_snippets(config.get_config(config_paths=args.config, project_root=args.dir,))
        return 0
    return 1


if __name__ == "__main__":
    sys.exit(main())

Functions

def main() -> int

Script CLI.

Expand source code
def main() -> int:
    """Script CLI."""
    parser = argparse.ArgumentParser()
    parser.add_argument("--config", type=str, action="append", help="paths (or globs) to config files")
    parser.add_argument(
        "dir",
        nargs="?",
        default=os.getcwd(),
        help="path to project root, used by any relative paths in loaded configs [cwd]",
    )
    parser.add_argument(
        "-v",
        "--verbose",
        action="count",
        default=0,
        help="Set the verbosity level, enter multiple times to increase verbosity.",
    )
    parser.add_argument(
        "-t", "--traceback", action="store_true", default=True, help="Show a traceback when an error is raised."
    )
    args = parser.parse_args()
    set_log_level(args.verbose)
    dotenv.load_dotenv(dotenv.find_dotenv(usecwd=True, raise_error_if_not_found=False))
    # Use the context manager to ensure tools exceptions (expected behaviour) are shown as messages to the user,
    # but all other exceptions (unexpected behaviour) are shown as errors.
    with MbedToolsHandler(LOGGER, args.traceback):
        extract_code_snippets(config.get_config(config_paths=args.config, project_root=args.dir,))
        return 0
    return 1
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy