# Copyright 2022 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Implements commands for serving a TUF repository."""
def _assert_server_running(repo_name: str) -> None: """Raises RuntimeError if the repository server is not running."""
with monitors.time_consumption('repository', 'list'):
list_cmd = run_ffx_command(cmd=[ '--machine', 'json', 'repository', 'server', 'list', '--name',
repo_name
],
check=False,
capture_output=True) try:
response = json.loads(list_cmd.stdout.strip()) if'ok'in response and response['ok']['data']: if response['ok']['data'][0]['name'] != repo_name: raise RuntimeError( 'Repository server %s is not running. Output: %s stderr: %s'
% (repo_name, list_cmd.stdout, list_cmd.stderr)) return except json.decoder.JSONDecodeError as error: # Log the json parsing error, but don't raise an exception since it # does not have the full context of the error.
logging.error('Unexpected json string: %s, exception: %s, stderr: %s',
list_cmd.stdout, error, list_cmd.stderr) raise RuntimeError( 'Repository server %s is not running. Output: %s stderr: %s'
% (repo_name, list_cmd.stdout, list_cmd.stderr))
def register_serve_args(arg_parser: argparse.ArgumentParser) -> None: """Register common arguments for repository serving."""
serve_args = arg_parser.add_argument_group('serve', 'repo serving arguments')
serve_args.add_argument('--serve-repo',
dest='repo',
help='Directory the repository is served from.')
serve_args.add_argument('--repo-name',
default=_REPO_NAME,
help='Name of the repository.')
@contextlib.contextmanager def serve_repository(args: argparse.Namespace) -> Iterator[None]: """Context manager for serving a repository."""
_start_serving(args.repo, args.repo_name, args.target_id) try: yieldNone finally:
_stop_serving(args.repo_name, args.target_id)
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.17 Sekunden
(vorverarbeitet am 2026-08-28)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.