-
Notifications
You must be signed in to change notification settings - Fork 85
/
cmd_shed_download.py
46 lines (39 loc) · 1.36 KB
/
cmd_shed_download.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""
"""
import sys
import click
from planemo.cli import pass_context
from planemo import options
from planemo import shed
target_path = click.Path(
file_okay=True,
writable=True,
resolve_path=True,
)
@click.command("shed_download")
@options.optional_project_arg(exists=True)
@click.option(
'--destination',
default="shed_download.tar.gz",
type=target_path,
help="Destination pattern of tarball(s) to download - if this doesn't "
"end in 'gz' it will be treated as a directory to extract tool "
"contents into (defaults to shed_download.tar.gz). If multiple "
"repositories are discovered in a .shed.yml file these will be "
"created as shed_download_<name>.tar.gz by default for instance, "
"simpler repositories will just be downloaded to the specified file."
)
@options.shed_owner_option()
@options.shed_name_option()
@options.shed_target_option()
@options.recursive_shed_option()
@pass_context
def cli(ctx, path, **kwds):
"""Download a tool repository as a tarball from the tool shed and extract
to the specified directory.
"""
tsi = shed.tool_shed_client(ctx, read_only=True, **kwds)
def download(realized_repository):
return shed.download_tarball(ctx, tsi, realized_repository, **kwds)
exit_code = shed.for_each_repository(download, path, **kwds)
sys.exit(exit_code)