libmakepkg: optimize get_protocol to always return proto, not proto+uri
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: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
1b9e358f1d
commit
ac0e21a6df
4 changed files with 19 additions and 17 deletions
|
@ -52,7 +52,7 @@ generate_one_checksum() {
|
|||
proto="$(get_protocol "$netfile")"
|
||||
|
||||
case $proto in
|
||||
bzr*|git*|hg*|svn*)
|
||||
bzr|git|hg|svn)
|
||||
sum="SKIP"
|
||||
;;
|
||||
*)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
;;
|
||||
*)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue