From: Darren Hart <[email protected]>

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://[email protected]/poky-contrib
  ssh://[email protected]/poky-contrib.git
  [email protected]:poky-contrib
  [email protected]:poky-contrib.git

Signed-off-by: Darren Hart <[email protected]>
---
 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 b808146..19b640f 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
                        exit 1
                fi
 
-               # Rewrite known private URLs to public URLs
+               # Rewrite private URLs to public URLs
                # Determine the repository name for use in the WEB_URL later
                case "$REMOTE_URL" in
-               ssh://[email protected]*)
-                       REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
-                       REMOTE_URL=${REMOTE_URL/'ssh://git@'/'git://'}
+               *@*)
+                       USER_RE="[A-Za-z0-9_.@][A-Za-z0-9_.@-]*\$\?"
+                       PROTO_RE="[a-z][a-z]*://"
+                       
GIT_RE="\(^\($PROTO_RE\)\?$USER_RE@\)\([^:/]*\)[:/]\(.*\)"
+                       REMOTE_URL=${REMOTE_URL%.git}
+                       REMOTE_REPO=$(echo $REMOTE_URL | sed "s#$GIT_RE#\4#")
+                       REMOTE_URL=$(echo $REMOTE_URL | sed 
"s#$GIT_RE#git://\3/\4#")
                        ;;
-               ssh://[email protected]*)
-                       REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
-                       REMOTE_URL=${REMOTE_URL/"ssh://git@"/"git://"}
-                       ;;
-               *ssh://[email protected]*)
-                       REMOTE_REPO=$(echo $REMOTE_URL | sed "s#.*/\(.*\)#\1#")
-                       REMOTE_URL=${REMOTE_URL/"ssh://git@"/"git://"}
-                       ;;
-               [email protected]:*)
-                       REMOTE_REPO=$(echo $REMOTE_URL | sed 
's#.*:\(.*\)\(\.git\)$#\1#')
-                       
REMOTE_URL=${REMOTE_URL/"[email protected]:"/"git://github.com/"}
+               *)
+                       echo "WARNING: Unrecognized remote URL: $REMOTE_URL"
+                       echo "         The pull and browse URLs will likely be 
incorrect"
                        ;;
                esac
-               # The .git suffix is optional in the URL, drop in for the REPO
-               REMOTE_REPO=${REMOTE_REPO%.git}
                ;;
        esac
 done
@@ -134,6 +128,7 @@ fi
 
 
 # Set WEB_URL from known remotes
+WEB_URL=""
 case "$REMOTE_URL" in
        *git.yoctoproject.org*)
                
WEB_URL="http://git.yoctoproject.org/cgit.cgi/$REMOTE_REPO/log/?h=$BRANCH";
-- 
1.7.3.4


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to