Source code for yambs.commands.download

"""
An entry-point for the 'download' command.
"""

# built-in
from argparse import ArgumentParser as _ArgumentParser
from argparse import Namespace as _Namespace
from pathlib import Path

# third-party
from vcorelib.args import CommandFunction as _CommandFunction

# internal
from yambs.dependency.github import GithubDependency, default_filt

DEFAULT_PATTERN = ".*"


[docs] def download_cmd(args: _Namespace) -> int: """Execute the download command.""" dep = GithubDependency(args.owner, args.repo) # Download and extract things. args.output.mkdir(parents=True, exist_ok=True) dep.download_release_assets( default_filt(args.output.joinpath(args.repo), pattern=args.pattern), strict=args.pattern == DEFAULT_PATTERN, ) return 0
[docs] def add_download_cmd(parser: _ArgumentParser) -> _CommandFunction: """Add download-command arguments to its parser.""" parser.add_argument( "-o", "--owner", default="libre-embedded", help="repository owner (default: '%(default)s')", ) parser.add_argument( "-r", "--repo", default="toolchains", help="repository name (default: '%(default)s')", ) parser.add_argument( "-O", "--output", type=Path, default=Path(), help="output directory (default: '%(default)s')", ) parser.add_argument( "-p", "--pattern", default=DEFAULT_PATTERN, help=( "a pattern to use to select project " "specifications filtered by name" ), ) return download_cmd