diff options
author | Darren Hart <dvhart@linux.intel.com> | 2011-05-23 10:21:53 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-05-25 15:50:54 +0100 |
commit | 567f171920080175af2d25378ab51ed2e3904501 (patch) | |
tree | 48b9c48251806699cd335b1218e1cd0b291d69c1 | |
parent | c2d187065e81b1cef8fd6ce36dbe582866320c11 (diff) | |
download | poky-567f171920080175af2d25378ab51ed2e3904501.tar.gz |
create-pull-request: generalize the repository URL parsing
The existing REMOTE_URL and REMOTE_REPO parsing made assumptions regarding
the git URL format used for the known repository types. In fact, both of
these ssh URL formats are valid for all the known repositories. Specifically:
ssh://git@server/repository/path
git@server:repository/path
Generalize the parsing to work with each of these for all push URLs matching
*@*. Tested with the following URLs:
ssh://git@git.pokylinux.org/poky-contrib
ssh://git@git.pokylinux.org/poky-contrib.git
git@git.pokylinux.org:poky-contrib
git@git.pokylinux.org:poky-contrib.git
(From OE-Core rev: 861c288e353e917374de938c4e5e927e116cd56c)
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-x | scripts/create-pull-request | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/scripts/create-pull-request b/scripts/create-pull-request index b808146391..19b640fdb8 100755 --- a/scripts/create-pull-request +++ b/scripts/create-pull-request | |||
@@ -97,28 +97,22 @@ while getopts "b:chi:m:o:p:r:s:u:" OPT; do | |||
97 | exit 1 | 97 | exit 1 |
98 | fi | 98 | fi |
99 | 99 | ||
100 | # Rewrite known private URLs to public URLs | 100 | # Rewrite private URLs to public URLs |
101 | # Determine the repository name for use in the WEB_URL later | 101 | # Determine the repository name for use in the WEB_URL later |
102 | case "$REMOTE_URL" in | 102 | case "$REMOTE_URL" in |
103 | ssh://git@git.pokylinux.org*) | 103 | *@*) |
104 | REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#") | 104 | USER_RE="[A-Za-z0-9_.@][A-Za-z0-9_.@-]*\$\?" |
105 | REMOTE_URL=${REMOTE_URL/'ssh://git@'/'git://'} | 105 | PROTO_RE="[a-z][a-z]*://" |
106 | GIT_RE="\(^\($PROTO_RE\)\?$USER_RE@\)\([^:/]*\)[:/]\(.*\)" | ||
107 | REMOTE_URL=${REMOTE_URL%.git} | ||
108 | REMOTE_REPO=$(echo $REMOTE_URL | sed "s#$GIT_RE#\4#") | ||
109 | REMOTE_URL=$(echo $REMOTE_URL | sed "s#$GIT_RE#git://\3/\4#") | ||
106 | ;; | 110 | ;; |
107 | ssh://git@git.yoctoproject.org*) | 111 | *) |
108 | REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#") | 112 | echo "WARNING: Unrecognized remote URL: $REMOTE_URL" |
109 | REMOTE_URL=${REMOTE_URL/"ssh://git@"/"git://"} | 113 | echo " The pull and browse URLs will likely be incorrect" |
110 | ;; | ||
111 | *ssh://git@git.openembedded.org*) | ||
112 | REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#") | ||
113 | REMOTE_URL=${REMOTE_URL/"ssh://git@"/"git://"} | ||
114 | ;; | ||
115 | git@github.com:*) | ||
116 | REMOTE_REPO=$(echo $REMOTE_URL | sed 's#.*:\(.*\)\(\.git\)$#\1#') | ||
117 | REMOTE_URL=${REMOTE_URL/"git@github.com:"/"git://github.com/"} | ||
118 | ;; | 114 | ;; |
119 | esac | 115 | esac |
120 | # The .git suffix is optional in the URL, drop in for the REPO | ||
121 | REMOTE_REPO=${REMOTE_REPO%.git} | ||
122 | ;; | 116 | ;; |
123 | esac | 117 | esac |
124 | done | 118 | done |
@@ -134,6 +128,7 @@ fi | |||
134 | 128 | ||
135 | 129 | ||
136 | # Set WEB_URL from known remotes | 130 | # Set WEB_URL from known remotes |
131 | WEB_URL="" | ||
137 | case "$REMOTE_URL" in | 132 | case "$REMOTE_URL" in |
138 | *git.yoctoproject.org*) | 133 | *git.yoctoproject.org*) |
139 | WEB_URL="http://git.yoctoproject.org/cgit.cgi/$REMOTE_REPO/log/?h=$BRANCH" | 134 | WEB_URL="http://git.yoctoproject.org/cgit.cgi/$REMOTE_REPO/log/?h=$BRANCH" |