diff options
author | Allan McRae <allan@archlinux.org> | 2012-06-04 12:02:36 +1000 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2012-08-04 00:16:38 +1000 |
commit | cca9849fc25012845b08ce877f9450e45c9d207d (patch) | |
tree | 5ec9a1b6660ca42de2f833b9817cb0c9787366cd /scripts | |
parent | aa6fe1160b39cd364a6595b7c9f56acb1cea3432 (diff) | |
download | pacman-cca9849fc25012845b08ce877f9450e45c9d207d.tar.xz |
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>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/makepkg.sh.in | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 8f163d32..d6f314ac 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -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%%#*} |