1
0
mirror of https://github.com/moparisthebest/pacman synced 2025-03-03 10:51:47 -05:00

makepkg: modify get_filepath to handle VCS sources

With VCS sources, get_filepath should return the directory of the
checkout. This allows backing up of the VCS checkout when using
--allsource.  Fixes FS#21098.

Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
Allan McRae 2012-06-04 12:02:36 +10:00
parent aa6fe1160b
commit cca9849fc2

View File

@ -193,19 +193,30 @@ enter_fakeroot() {
# 2) "http://path/to/file" # 2) "http://path/to/file"
# Return the absolute filename of a source entry # Return the absolute filename of a source entry
#
# This function accepts a source entry or the already extracted filename of a
# source entry as input
get_filepath() { get_filepath() {
local file="$(get_filename "$1")" local file="$(get_filename "$1")"
local proto="$(get_protocol "$1")"
if [[ -f "$startdir/$file" ]]; then case $proto in
file="$startdir/$file" git*)
elif [[ -f "$SRCDEST/$file" ]]; then if [[ -d "$startdir/$file" ]]; then
file="$SRCDEST/$file" file="$startdir/$file"
else elif [[ -d "$SRCDEST/$file" ]]; then
return 1 file="$SRCDEST/$file"
fi else
return 1
fi
;;
*)
if [[ -f "$startdir/$file" ]]; then
file="$startdir/$file"
elif [[ -f "$SRCDEST/$file" ]]; then
file="$SRCDEST/$file"
else
return 1
fi
;;
esac
printf "%s\n" "$file" printf "%s\n" "$file"
} }
@ -369,18 +380,13 @@ download_git() {
unset fragment unset fragment
fi fi
local dir=$(get_filename "$netfile") local dir=$(get_filepath "$netfile")
[[ -z "$dir" ]] && dir="$SRCDEST/$(get_filename "$netfile")"
local repo=${netfile##*/} local repo=${netfile##*/}
repo=${repo%%#*} repo=${repo%%#*}
repo=${repo%%.git*} repo=${repo%%.git*}
if [[ ! -d "$startdir"/$dir ]]; then
dir="$SRCDEST"/$dir
else
dir="$startdir"/$dir
fi
local url=$(get_url "$netfile") local url=$(get_url "$netfile")
url=${url##*git+} url=${url##*git+}
url=${url%%#*} url=${url%%#*}