e.g. git+https:// is commonly used for git repositories cloned over
HTTPS, but we assume a proto with a plus in it is actually a protocol
followed by some URI handler. So we might as well simplify the return
value and not have to always add glob matching everywhere when checking
the proto in use.

This is required in order to use the proto directly in function calls,
which will be used in a followup patch.

Signed-off-by: Eli Schwartz <eschwa...@archlinux.org>
---
 .../libmakepkg/integrity/generate_checksum.sh.in |  2 +-
 .../libmakepkg/integrity/verify_signature.sh.in  |  4 ++--
 scripts/libmakepkg/source.sh.in                  | 16 ++++++++--------
 scripts/libmakepkg/util/source.sh.in             | 14 ++++++++------
 4 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/scripts/libmakepkg/integrity/generate_checksum.sh.in 
b/scripts/libmakepkg/integrity/generate_checksum.sh.in
index eb9b74fc..b8b078ec 100644
--- a/scripts/libmakepkg/integrity/generate_checksum.sh.in
+++ b/scripts/libmakepkg/integrity/generate_checksum.sh.in
@@ -52,7 +52,7 @@ generate_one_checksum() {
                proto="$(get_protocol "$netfile")"
 
                case $proto in
-                       bzr*|git*|hg*|svn*)
+                       bzr|git|hg|svn)
                                sum="SKIP"
                                ;;
                        *)
diff --git a/scripts/libmakepkg/integrity/verify_signature.sh.in 
b/scripts/libmakepkg/integrity/verify_signature.sh.in
index ea877822..38f8afa1 100644
--- a/scripts/libmakepkg/integrity/verify_signature.sh.in
+++ b/scripts/libmakepkg/integrity/verify_signature.sh.in
@@ -49,7 +49,7 @@ check_pgpsigs() {
        for netfile in "${all_sources[@]}"; do
                proto="$(get_protocol "$netfile")"
 
-               if [[ $proto = git* ]]; then
+               if [[ $proto = git ]]; then
                        verify_git_signature "$netfile" "$statusfile" || 
continue
                else
                        verify_file_signature "$netfile" "$statusfile" || 
continue
@@ -263,7 +263,7 @@ source_has_signatures() {
                proto="$(get_protocol "$netfile")"
                query=$(get_uri_query "$netfile")
 
-               if [[ ${netfile%%::*} = *.@(sig?(n)|asc) || ( $proto = git* && 
$query = signed ) ]]; then
+               if [[ ${netfile%%::*} = *.@(sig?(n)|asc) || ( $proto = git && 
$query = signed ) ]]; then
                        return 0
                fi
        done
diff --git a/scripts/libmakepkg/source.sh.in b/scripts/libmakepkg/source.sh.in
index 5d7df732..198efd5e 100644
--- a/scripts/libmakepkg/source.sh.in
+++ b/scripts/libmakepkg/source.sh.in
@@ -63,16 +63,16 @@ download_sources() {
                        local)
                                download_local "$netfile"
                                ;;
-                       bzr*)
+                       bzr)
                                (( get_vcs )) && download_bzr "$netfile"
                                ;;
-                       git*)
+                       git)
                                (( get_vcs )) && download_git "$netfile"
                                ;;
-                       hg*)
+                       hg)
                                (( get_vcs )) && download_hg "$netfile"
                                ;;
-                       svn*)
+                       svn)
                                (( get_vcs )) && download_svn "$netfile"
                                ;;
                        *)
@@ -93,16 +93,16 @@ extract_sources() {
                local file=$(get_filename "$netfile")
                local proto=$(get_protocol "$netfile")
                case "$proto" in
-                       bzr*)
+                       bzr)
                                extract_bzr "$netfile"
                                ;;
-                       git*)
+                       git)
                                extract_git "$netfile"
                                ;;
-                       hg*)
+                       hg)
                                extract_hg "$netfile"
                                ;;
-                       svn*)
+                       svn)
                                extract_svn "$netfile"
                                ;;
                        *)
diff --git a/scripts/libmakepkg/util/source.sh.in 
b/scripts/libmakepkg/util/source.sh.in
index 17e44664..faa7061b 100644
--- a/scripts/libmakepkg/util/source.sh.in
+++ b/scripts/libmakepkg/util/source.sh.in
@@ -41,10 +41,12 @@ get_protocol() {
        if [[ $1 = *://* ]]; then
                # strip leading filename
                local proto="${1#*::}"
-               printf "%s\n" "${proto%%://*}"
+               proto="${proto%%://*}"
+               # strip proto+uri://
+               printf "%s\n" "${proto%%+*}"
        elif [[ $1 = *lp:* ]]; then
                local proto="${1#*::}"
-               printf "%s\n" "${proto%%lp:*}"
+               printf "%s\n" "${proto%%+lp:*}"
        else
                printf "%s\n" local
        fi
@@ -63,15 +65,15 @@ get_filename() {
        local proto=$(get_protocol "$netfile")
 
        case $proto in
-               bzr*|git*|hg*|svn*)
+               bzr|git|hg|svn)
                        filename=${netfile%%#*}
                        filename=${filename%%\?*}
                        filename=${filename%/}
                        filename=${filename##*/}
-                       if [[ $proto = bzr* ]]; then
+                       if [[ $proto = bzr ]]; then
                                filename=${filename#*lp:}
                        fi
-                       if [[ $proto = git* ]]; then
+                       if [[ $proto = git ]]; then
                                filename=${filename%%.git*}
                        fi
                        ;;
@@ -89,7 +91,7 @@ get_filepath() {
        local proto="$(get_protocol "$1")"
 
        case $proto in
-               bzr*|git*|hg*|svn*)
+               bzr|git|hg|svn)
                        if [[ -d "$startdir/$file" ]]; then
                                file="$startdir/$file"
                        elif [[ -d "$SRCDEST/$file" ]]; then
-- 
2.17.0

Reply via email to