From 2f7e92ad045fb276c8fe88d4793c8edc383d147c Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Thu, 10 Oct 2013 12:29:07 +1000 Subject: Link non-vcs sources into $srcdir during extraction The separation between downloading and extracting for non-vsc sources was incomplete due to symlinks being made in $srcdir during the download stage. Have download_{local,file} just ensure the presence of the files in $startdir or $SRCDEST (downloading if needed) and then have extract_file symlink these files into $srcdir. Also replace "continue" with "return" in extract_file to make it clearer what is happening. Signed-off-by: Allan McRae --- scripts/makepkg.sh.in | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'scripts') diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 30a162ec..e36e22b4 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -320,8 +320,6 @@ download_local() { if [[ -n "$filepath" ]]; then msg2 "$(gettext "Found %s")" "${filepath##*/}" - rm -f "$srcdir/${filepath##*/}" - ln -s "$filepath" "$srcdir/" else local filename=$(get_filename "$netfile") error "$(gettext "%s was not found in the build directory and is not a URL.")" "$filename" @@ -335,8 +333,6 @@ download_file() { local filepath=$(get_filepath "$netfile") if [[ -n "$filepath" ]]; then msg2 "$(gettext "Found %s")" "${filepath##*/}" - rm -f "$srcdir/${filepath##*/}" - ln -s "$filepath" "$srcdir/" return fi @@ -384,13 +380,15 @@ download_file() { if [[ $dlfile != "$filename" ]]; then mv -f "$SRCDEST/$dlfile" "$SRCDEST/$filename" fi - - rm -f "$srcdir/$filename" - ln -s "$SRCDEST/$filename" "$srcdir/" } extract_file() { local file=$1 + + local filepath=$(get_filepath "$file") + rm -f "$srcdir/${file}" + ln -s "$filepath" "$srcdir/" + # do not rely on extension for file type local file_type=$(file -bizL "$file") local ext=${file##*.} @@ -401,24 +399,24 @@ extract_file() { *application/x-gzip*) case "$ext" in gz|z|Z) cmd="gzip" ;; - *) continue;; + *) return;; esac ;; *application/x-bzip*) case "$ext" in bz2|bz) cmd="bzip2" ;; - *) continue;; + *) return;; esac ;; *application/x-xz*) case "$ext" in xz) cmd="xz" ;; - *) continue;; + *) return;; esac ;; *) # See if bsdtar can recognize the file if bsdtar -tf "$file" -q '*' &>/dev/null; then cmd="bsdtar" else - continue + return fi ;; esac -- cgit v1.2.3-54-g00ecf