예제 #1
0
def main() -> None:
    """Parses command line arguments and retrieves project configuration values."""
    parser = argparse.ArgumentParser(
        description="Retrieves project configuration values.")
    group = parser.add_mutually_exclusive_group(required=True)
    group.add_argument("-c",
                       "--config-variable",
                       help="variable key string",
                       type=str)
    group.add_argument("-k",
                       "--key",
                       help="configuration variable",
                       type=str,
                       choices=ConfigurationVariable.choices())
    parser.add_argument("-v",
                        "--verbose",
                        action="count",
                        default=0,
                        help="Verbosity, by default errors are reported.")
    args = parser.parse_args()
    set_log_level(args.verbose)

    try:
        print(
            configuration.get_value(
                ConfigurationVariable.parse(args.key) if args.key else args.
                config_variable))
    except Exception as e:
        log_exception(logger, e)
        sys.exit(1)
def main() -> int:
    """Script CLI."""
    parser = argparse.ArgumentParser(
        description="Generate licence and third-party IP reports.")

    def convert_to_path(arg: Any) -> Path:
        """Converts argument to a path."""
        return Path(arg)

    parser.add_argument("-o",
                        "--output-dir",
                        help="Output directory where the files are generated",
                        required=True,
                        type=convert_to_path)

    parser.add_argument(
        "-v",
        "--verbose",
        action="count",
        default=0,
        help="Verbosity, by default errors are reported.",
    )
    args = parser.parse_args()
    set_log_level(args.verbose)

    try:
        project = generate_spdx_reports(args.output_dir)
        project.check_licence_compliance()
        return 0
    except Exception as e:
        log_exception(logger, e)
        return 1
예제 #3
0
def generate_docs(output_directory: Path, module: str) -> int:
    """Triggers building the documentation."""
    try:
        generate_documentation(output_directory, module)
    except Exception as e:
        log_exception(logger, e)
        return 1
    return 0
def get_current_spdx_project() -> SpdxProject:
    """Gets information about the current project/package."""
    logger.info("Generating package information.")
    try:
        # Trying to generate the egg for the package but this may fail. If so, continue.
        generate_package_info()
    except Exception as e:
        log_exception(logger, e)
    return SpdxProject(CurrentProjectMetadataParser())
예제 #5
0
def generate_spdx_reports(output_directory: Path) -> SpdxProject:
    """Generates all the SPDX reports for the current project."""
    logger.info("Generating package information.")
    try:
        # Trying to generate the egg for the package but this may fail. If so, continue.
        generate_package_info()
    except Exception as e:
        log_exception(logger, e)

    logger.info("Generating SPDX report.")
    project = SpdxProject(CurrentProjectMetadataParser())
    project.generate_tag_value_files(output_directory)
    return project
def main():
    """Handle command line arguments to generate a results summary file."""
    parser = argparse.ArgumentParser(description="Publish target data report to AWS.")
    parser.add_argument("-v", "--verbose", action="count", default=0, help="Verbosity, by default errors are reported.")
    args = parser.parse_args()
    set_log_level(args.verbose)

    # Retrieve environment settings (if any) stored in a .env file
    dotenv.load_dotenv(dotenv.find_dotenv(usecwd=True, raise_error_if_not_found=False))
    try:
        generate_validation_report_and_publish()
    except Exception as e:
        log_exception(logger, e)
        sys.exit(1)
예제 #7
0
def main() -> int:
    """Creates a CLI."""
    parser = argparse.ArgumentParser(
        description="Adds licence header to every source file of a project.")
    parser.add_argument("-v",
                        "--verbose",
                        action="count",
                        default=0,
                        help="Verbosity, by default errors are reported.")
    args = parser.parse_args()
    set_log_level(args.verbose)
    try:
        add_licence_header(args.verbose)
    except Exception as e:
        log_exception(logger, e)
        return 1
    return 0
예제 #8
0
def main() -> int:
    """Parses cli arguments and creates a news file."""
    parser = argparse.ArgumentParser()
    parser.add_argument("news_text", help="Contents of the news file.")
    parser.add_argument("--type",
                        help="News type to create.",
                        choices=[t.name for t in NewsType],
                        default="feature")

    args = parser.parse_args()
    created_file = create_news_file(args.news_text, NewsType[args.type])

    try:
        validate_news_file(created_file)
    except ValueError as e:
        created_file.unlink()
        log_exception(logger, e)
        return 1

    return 0
예제 #9
0
def main() -> None:
    """Handle command line arguments to generate a version and changelog file."""
    parser = argparse.ArgumentParser(description="Versions the project.")
    parser.add_argument("-t",
                        "--release-type",
                        help="type of release to perform",
                        required=True,
                        type=str,
                        choices=CommitType.choices())
    parser.add_argument("-v",
                        "--verbose",
                        action="count",
                        default=0,
                        help="Verbosity, by default errors are reported.")
    args = parser.parse_args()
    set_log_level(args.verbose)

    try:
        version_project(CommitType.parse(args.release_type))
    except Exception as e:
        log_exception(logger, e)
        sys.exit(1)