diff env/lib/python3.7/site-packages/planemo/commands/cmd_clone.py @ 0:26e78fe6e8c4 draft

"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author shellac
date Sat, 02 May 2020 07:14:21 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/env/lib/python3.7/site-packages/planemo/commands/cmd_clone.py	Sat May 02 07:14:21 2020 -0400
@@ -0,0 +1,69 @@
+"""Module describing the planemo ``recipe_init`` command."""
+import click
+
+from planemo import github_util
+from planemo import options
+from planemo.cli import command_function
+from planemo.config import planemo_option
+
+
+CLONE_GITHUB_TARGETS = {
+    "tools-iuc": "galaxyproject/tools-iuc",
+    "tools-devteam": "galaxyproject/tools-devteam",
+    "galaxy": "galaxyproject/galaxy",
+    "planemo": "galaxyproject/planemo",
+    "tools-galaxyp": "galaxyproteomics/tools-galaxyp",
+    "bioconda-recipes": "bioconda/bioconda-recipes",
+    "homebrew-science": "Homebrew/homebrew-science",
+    "workflows": "common-workflow-language/workflows",
+}
+
+
+def clone_target_arg():
+    """Represent target to clone/branch."""
+    return click.argument(
+        "target",
+        metavar="TARGET",
+        type=click.STRING,
+    )
+
+
+@click.command('clone')
+@planemo_option(
+    "--fork/--skip_fork",
+    default=True,
+    is_flag=True,
+)
+@planemo_option(
+    "--branch",
+    type=click.STRING,
+    default=None,
+    help="Create a named branch on result."
+)
+@clone_target_arg()
+@options.optional_project_arg(exists=None, default="__NONE__")
+@command_function
+def cli(ctx, target, path, **kwds):
+    """Short-cut to quickly clone, fork, and branch a relevant Github repo.
+
+    For instance, the following will clone, fork, and branch the tools-iuc
+    repository to allow a subsequent pull request to fix a problem with bwa.
+
+
+    \b
+        $ planemo clone --branch bwa-fix tools-iuc
+        $ cd tools-iuc
+        $ # Make changes.
+        $ git add -p # Add desired changes.
+        $ git commit -m "Fix bwa problem."
+        $ planemo pull_request -m "Fix bwa problem."
+
+    These changes do require that a github username and password are
+    specified in ~/.planemo.yml.
+    """
+    if target in CLONE_GITHUB_TARGETS:
+        target = "https://github.com/%s" % CLONE_GITHUB_TARGETS[target]
+    # Pretty hacky that this path isn't treated as None.
+    if path is None or path.endswith("__NONE__"):
+        path = target.split("/")[-1]
+    github_util.clone_fork_branch(ctx, target, path, **kwds)