# 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 managing Fuchsia repos via the ffx tool.""" import argparse from typing import Iterable from common import run_ffx_command def publish_packages(packages: Iterable[str], repo: str, new_repo: bool = False) -> None: """Publish packages to a repo directory, initializing it if necessary.""" if new_repo: run_ffx_command(cmd=['repository', 'create', repo]) args = ['repository', 'publish'] for package in packages: args += ['--package-archive', package] args += [repo] run_ffx_command(cmd=args) def register_package_args(parser: argparse.ArgumentParser, allow_temp_repo: bool = False) -> None: """Register common arguments for package publishing.""" package_args = parser.add_argument_group( 'package', 'Arguments for package publishing.') package_args.add_argument('--packages', action='append', help='Paths of the package archives to install') package_args.add_argument('--repo', help='Directory packages will be published to.') package_args.add_argument('--purge-repo', action='store_true', help='If clear the content in the repo.') if allow_temp_repo: package_args.add_argument( '--no-repo-init', action='store_true', default=False, help='Do not initialize the package repository.')