diff options
| author | Olivier Lenoir <olivier.len02@gmail.com> | 2024-03-13 21:51:22 +0100 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2024-05-15 13:32:02 +1000 |
| commit | 85c85e8f0d6e44827553f67a4ab67c2cb3078fdd (patch) | |
| tree | 326049d0b3b5766b4e9b8a08655e16176a6ba572 | |
| parent | 025d10a702c0815946418f37300f64fdba43f371 (diff) | |
tools/mpremote: Add support to mip install from GitLab.
Changes are:
- main.py: Add gitlab:org/repo, gitlab:org/repo@branch.
- mip.py: Implement install from GitLab.
- README.md: Add mip install gitlab:org/repo@branch example.
Signed-off-by: Olivier Lenoir <olivier.len02@gmail.com>
| -rw-r--r-- | tools/mpremote/README.md | 1 | ||||
| -rw-r--r-- | tools/mpremote/mpremote/main.py | 2 | ||||
| -rw-r--r-- | tools/mpremote/mpremote/mip.py | 13 |
3 files changed, 15 insertions, 1 deletions
diff --git a/tools/mpremote/README.md b/tools/mpremote/README.md index 4eb1b86fb..3d428f128 100644 --- a/tools/mpremote/README.md +++ b/tools/mpremote/README.md @@ -80,3 +80,4 @@ Examples: mpremote cp -r dir/ : mpremote mip install aioble mpremote mip install github:org/repo@branch + mpremote mip install gitlab:org/repo@branch diff --git a/tools/mpremote/mpremote/main.py b/tools/mpremote/mpremote/main.py index eeb9cbd98..e4d15fb47 100644 --- a/tools/mpremote/mpremote/main.py +++ b/tools/mpremote/mpremote/main.py @@ -214,7 +214,7 @@ def argparse_mip(): cmd_parser.add_argument( "packages", nargs="+", - help="list package specifications, e.g. name, name@version, github:org/repo, github:org/repo@branch", + help="list package specifications, e.g. name, name@version, github:org/repo, github:org/repo@branch, gitlab:org/repo, gitlab:org/repo@branch", ) return cmd_parser diff --git a/tools/mpremote/mpremote/mip.py b/tools/mpremote/mpremote/mip.py index f42c7a0b4..46c9686ad 100644 --- a/tools/mpremote/mpremote/mip.py +++ b/tools/mpremote/mpremote/mip.py @@ -65,6 +65,18 @@ def _rewrite_url(url, branch=None): + "/" + "/".join(url[2:]) ) + elif url.startswith("gitlab:"): + url = url[7:].split("/") + url = ( + "https://gitlab.com/" + + url[0] + + "/" + + url[1] + + "/-/raw/" + + branch + + "/" + + "/".join(url[2:]) + ) return url @@ -116,6 +128,7 @@ def _install_package(transport, package, index, target, version, mpy): package.startswith("http://") or package.startswith("https://") or package.startswith("github:") + or package.startswith("gitlab:") ): if package.endswith(".py") or package.endswith(".mpy"): print(f"Downloading {package} to {target}") |
