1#!/usr/bin/env python3 2# SPDX-License-Identifier: GPL-2.0-only OR MIT 3# Copyright (C) 2025 TNG Technology Consulting GmbH 4 5""" 6Compute software bill of materials in SPDX format describing a kernel build. 7""" 8 9import logging 10import sys 11import sbom.sbom_logging as sbom_logging 12from sbom.config import get_config 13 14 15def _exit_with_summary(write_output_on_error: bool = False) -> None: 16 warning_summary = sbom_logging.summarize_warnings() 17 error_summary = sbom_logging.summarize_errors() 18 if warning_summary: 19 logging.warning(warning_summary) 20 if error_summary: 21 logging.error(error_summary) 22 sys.exit(1) 23 24 25def main(): 26 # Read config 27 config = get_config() 28 29 # Configure logging 30 logging.basicConfig( 31 level=logging.DEBUG if config.debug else logging.INFO, 32 format="[%(levelname)s] %(message)s", 33 ) 34 35 _exit_with_summary(config.write_output_on_error) 36 37 38# Call main method 39if __name__ == "__main__": 40 main() 41