# Copyright (c) 2023 Nordic Semiconductor ASA # # SPDX-License-Identifier: Apache-2.0 from __future__ import annotations import logging import shlex from subprocess import check_output from pathlib import Path logger = logging.getLogger(__name__) def west_sign_with_imgtool( build_dir: Path, output_bin: Path | None = None, key_file: Path | None = None, version: str | None = None, timeout: int = 10 ): """Wrapper method for `west sign -t imgtool` comamnd""" command = [ 'west', 'sign', '-t', 'imgtool', '--no-hex', '--build-dir', str(build_dir) ] if output_bin: command.extend(['--sbin', str(output_bin)]) command_extra_args = [] if key_file: command_extra_args.extend(['--key', str(key_file)]) if version: command_extra_args.extend(['--version', version]) if command_extra_args: command.append('--') command.extend(command_extra_args) logger.info(f"CMD: {shlex.join(command)}") output = check_output(command, text=True, timeout=timeout) logger.debug('OUT: %s' % output)