Add support for all bzr URLs in the PKGBUILD source array

Add support for all bzr URLs, including "lp:" URLs, in the source array.
This, however, requires an internet connection and will fall back to the
current behavior for offline builds. In that case, only the URL reported
by 'bzr config parent_location' run inside the local repo can be used,
and is outputted.

Signed-off-by: Maxime Gauduin <alucryd@gmail.com>
This commit is contained in:
Maxime Gauduin 2013-04-10 18:54:02 +02:00 committed by Allan McRae
parent b7c994db8b
commit 2bf2700b74
1 changed files with 21 additions and 4 deletions

View File

@ -245,6 +245,9 @@ get_filename() {
filename=${netfile%%#*}
filename=${filename%/}
filename=${filename##*/}
if [[ $proto = bzr* ]]; then
filename=${filename#*lp:}
fi
if [[ $proto = git* ]]; then
filename=${filename%%.git*}
fi
@ -269,6 +272,9 @@ get_protocol() {
# strip leading filename
local proto="${1##*::}"
printf "%s\n" "${proto%%://*}"
elif [[ $1 = *lp:* ]]; then
local proto="${1##*::}"
printf "%s\n" "${proto%%lp:*}"
else
printf "%s\n" local
fi
@ -471,10 +477,21 @@ download_bzr() {
fi
elif (( ! HOLDVER )); then
# Make sure we are fetching the right repo
if [[ "$url" != "$(bzr config parent_location -d $dir)" ]] ; then
error "$(gettext "%s is not a branch of %s")" "$dir" "$url"
plain "$(gettext "Aborting...")"
exit 1
local distant_url="$(bzr info $url 2> /dev/null | sed -n '/branch root/{s/ branch root: //p;q;}')"
local local_url="$(bzr config parent_location -d $dir)"
if [[ -n $distant_url ]]; then
if [[ $distant_url != "$local_url" ]]; then
error "$(gettext "%s is not a branch of %s")" "$dir" "$url"
plain "$(gettext "Aborting...")"
exit 1
fi
else
if [[ $url != "$local_url" ]] ; then
error "$(gettext "%s is not a branch of %s")" "$dir" "$url"
error "$(gettext "The local URL is %s")" "$local_url"
plain "$(gettext "Aborting...")"
exit 1
fi
fi
msg2 "$(gettext "Pulling %s ...")" "${displaylocation}"
cd_safe "$dir"