mirror of
https://github.com/moparisthebest/pacman
synced 2025-03-01 09:51:50 -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:
parent
aa6fe1160b
commit
cca9849fc2
@ -193,19 +193,30 @@ enter_fakeroot() {
|
||||
# 2) "http://path/to/file"
|
||||
|
||||
# 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() {
|
||||
local file="$(get_filename "$1")"
|
||||
local proto="$(get_protocol "$1")"
|
||||
|
||||
if [[ -f "$startdir/$file" ]]; then
|
||||
file="$startdir/$file"
|
||||
elif [[ -f "$SRCDEST/$file" ]]; then
|
||||
file="$SRCDEST/$file"
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
case $proto in
|
||||
git*)
|
||||
if [[ -d "$startdir/$file" ]]; then
|
||||
file="$startdir/$file"
|
||||
elif [[ -d "$SRCDEST/$file" ]]; then
|
||||
file="$SRCDEST/$file"
|
||||
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"
|
||||
}
|
||||
@ -369,18 +380,13 @@ download_git() {
|
||||
unset fragment
|
||||
fi
|
||||
|
||||
local dir=$(get_filename "$netfile")
|
||||
local dir=$(get_filepath "$netfile")
|
||||
[[ -z "$dir" ]] && dir="$SRCDEST/$(get_filename "$netfile")"
|
||||
|
||||
local repo=${netfile##*/}
|
||||
repo=${repo%%#*}
|
||||
repo=${repo%%.git*}
|
||||
|
||||
if [[ ! -d "$startdir"/$dir ]]; then
|
||||
dir="$SRCDEST"/$dir
|
||||
else
|
||||
dir="$startdir"/$dir
|
||||
fi
|
||||
|
||||
local url=$(get_url "$netfile")
|
||||
url=${url##*git+}
|
||||
url=${url%%#*}
|
||||
|
Loading…
x
Reference in New Issue
Block a user