[oe-commits] [bitbake] 02/02: fetch2/gitsm.py: Change the URI construction logic
git at git.openembedded.org
git at git.openembedded.org
Tue Jan 8 11:47:51 UTC 2019
This is an automated email from the git hooks/post-receive script.
rpurdie pushed a commit to branch master-next
in repository bitbake.
commit 834baba8f01ac99751ff63f16345e350b5d4d6c1
Author: Krystian Garliński <krystian.garlinski at comarch.pl>
AuthorDate: Tue Jan 8 08:47:37 2019 +0100
fetch2/gitsm.py: Change the URI construction logic
Git allows to use both the proper URI's and SCP-like short style syntax
for the SSH protocol. This commit changes construction logic to detect which
one of the two is used in the submodule specification and to build a correct
URI out of it.
Signed-off-by: Krystian Garliński <krystian.garlinski at comarch.pl>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
lib/bb/fetch2/gitsm.py | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/lib/bb/fetch2/gitsm.py b/lib/bb/fetch2/gitsm.py
index 35729db..95d5f65 100644
--- a/lib/bb/fetch2/gitsm.py
+++ b/lib/bb/fetch2/gitsm.py
@@ -32,6 +32,7 @@ NOTE: Switching a SRC_URI from "git://" to "gitsm://" requires a clean of your r
import os
import bb
import copy
+import re
from bb.fetch2.git import Git
from bb.fetch2 import runfetchcmd
from bb.fetch2 import logger
@@ -39,6 +40,8 @@ from bb.fetch2 import Fetch
from bb.fetch2 import BBFetchException
class GitSM(Git):
+ scp_regex = re.compile(r'^([a-zA-Z0-9_]+)@([a-zA-Z0-9._-]+):(.+)$')
+
def supports(self, ud, d):
"""
Check to see if a given url can be fetched with git.
@@ -88,8 +91,17 @@ class GitSM(Git):
module_hash = module_hash.split()[2]
# Build new SRC_URI
- proto = uris[module].split(':', 1)[0]
- url = uris[module].replace('%s:' % proto, 'gitsm:', 1)
+ uri = uris[module]
+ match = GitSM.scp_regex.match(uri)
+
+ if match:
+ # this URI follows the short SCP-like syntax
+ url = 'gitsm://{}@{}/{}'.format(match.group(1), match.group(2), match.group(3))
+ proto = 'ssh'
+ else:
+ proto = uri.split(':', 1)[0]
+ url = 'gitsm' + uri[len(proto):]
+
url += ';protocol=%s' % proto
url += ";name=%s" % module
url += ";bareclone=1;nocheckout=1;nobranch=1"
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Openembedded-commits
mailing list