Mercurial > repos > shellac > guppy_basecaller
comparison env/lib/python3.7/site-packages/planemo/commands/cmd_clone.py @ 5:9b1c78e6ba9c draft default tip
"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author | shellac |
---|---|
date | Mon, 01 Jun 2020 08:59:25 -0400 |
parents | 79f47841a781 |
children |
comparison
equal
deleted
inserted
replaced
4:79f47841a781 | 5:9b1c78e6ba9c |
---|---|
1 """Module describing the planemo ``recipe_init`` command.""" | |
2 import click | |
3 | |
4 from planemo import github_util | |
5 from planemo import options | |
6 from planemo.cli import command_function | |
7 from planemo.config import planemo_option | |
8 | |
9 | |
10 CLONE_GITHUB_TARGETS = { | |
11 "tools-iuc": "galaxyproject/tools-iuc", | |
12 "tools-devteam": "galaxyproject/tools-devteam", | |
13 "galaxy": "galaxyproject/galaxy", | |
14 "planemo": "galaxyproject/planemo", | |
15 "tools-galaxyp": "galaxyproteomics/tools-galaxyp", | |
16 "bioconda-recipes": "bioconda/bioconda-recipes", | |
17 "homebrew-science": "Homebrew/homebrew-science", | |
18 "workflows": "common-workflow-language/workflows", | |
19 } | |
20 | |
21 | |
22 def clone_target_arg(): | |
23 """Represent target to clone/branch.""" | |
24 return click.argument( | |
25 "target", | |
26 metavar="TARGET", | |
27 type=click.STRING, | |
28 ) | |
29 | |
30 | |
31 @click.command('clone') | |
32 @planemo_option( | |
33 "--fork/--skip_fork", | |
34 default=True, | |
35 is_flag=True, | |
36 ) | |
37 @planemo_option( | |
38 "--branch", | |
39 type=click.STRING, | |
40 default=None, | |
41 help="Create a named branch on result." | |
42 ) | |
43 @clone_target_arg() | |
44 @options.optional_project_arg(exists=None, default="__NONE__") | |
45 @command_function | |
46 def cli(ctx, target, path, **kwds): | |
47 """Short-cut to quickly clone, fork, and branch a relevant Github repo. | |
48 | |
49 For instance, the following will clone, fork, and branch the tools-iuc | |
50 repository to allow a subsequent pull request to fix a problem with bwa. | |
51 | |
52 | |
53 \b | |
54 $ planemo clone --branch bwa-fix tools-iuc | |
55 $ cd tools-iuc | |
56 $ # Make changes. | |
57 $ git add -p # Add desired changes. | |
58 $ git commit -m "Fix bwa problem." | |
59 $ planemo pull_request -m "Fix bwa problem." | |
60 | |
61 These changes do require that a github username and password are | |
62 specified in ~/.planemo.yml. | |
63 """ | |
64 if target in CLONE_GITHUB_TARGETS: | |
65 target = "https://github.com/%s" % CLONE_GITHUB_TARGETS[target] | |
66 # Pretty hacky that this path isn't treated as None. | |
67 if path is None or path.endswith("__NONE__"): | |
68 path = target.split("/")[-1] | |
69 github_util.clone_fork_branch(ctx, target, path, **kwds) |