Mercurial > hg > aboriginal
changeset 676:112dc7b787d3
Fix hg 665 so it actually works. (Make setupfor work when build/sources/package exists but there's no packages/package-*.tar* file.)
author | Rob Landley <rob@landley.net> |
---|---|
date | Mon, 30 Mar 2009 03:26:45 -0500 |
parents | 4571f63c2298 |
children | ada655f5be21 |
files | sources/functions.sh |
diffstat | 1 files changed, 16 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/sources/functions.sh Mon Mar 30 01:11:34 2009 -0500 +++ b/sources/functions.sh Mon Mar 30 03:26:45 2009 -0500 @@ -79,14 +79,13 @@ function extract() { + FILENAME="$1" SRCTREE="${BUILD}/sources" - BASENAME="$(basename "$1")" - SHA1FILE="$(echo "${SRCTREE}/${BASENAME}/sha1-for-source.txt")" - SHA1TAR="$(sha1file "${SRCDIR}/$1")" + SHA1FILE="$(echo "${SRCTREE}/${PACKAGE}/sha1-for-source.txt")" # Sanity check: don't ever "rm -rf /". Just don't. - if [ -z "$BASENAME" ] || [ -z "$SRCTREE" ] + if [ -z "$PACKAGE" ] || [ -z "$SRCTREE" ] then dienow fi @@ -94,13 +93,15 @@ # If the source tarball doesn't exist, but the extracted directory is there, # assume everything's ok. - [ ! -e "$1" ] && [ -e "$SHA1FILE" ] && return 0 + [ ! -e "$FILENAME" ] && [ -e "$SHA1FILE" ] && return 0 + + SHA1TAR="$(sha1file "${SRCDIR}/${FILENAME}")" # If it's already extracted and up to date (including patches), do nothing. SHALIST=$(cat "$SHA1FILE" 2> /dev/null) if [ ! -z "$SHALIST" ] then - for i in "$SHA1TAR" $(sha1file "${SOURCES}/patches/$BASENAME"-* 2>/dev/null) + for i in "$SHA1TAR" $(sha1file "${SOURCES}/patches/${PACKAGE}"-* 2>/dev/null) do # Is this sha1 in the file? if [ -z "$(echo "$SHALIST" | sed -n "s/$i/$i/p" )" ] @@ -115,21 +116,21 @@ [ -z "$SHALIST" ] && return 0 fi - echo -n "Extracting '${BASENAME}'" + echo -n "Extracting '${PACKAGE}'" # Delete the old tree (if any). Create new empty working directories. - rm -rf "${BUILD}/temp" "${SRCTREE}/${BASENAME}" 2>/dev/null + rm -rf "${BUILD}/temp" "${SRCTREE}/${PACKAGE}" 2>/dev/null mkdir -p "${BUILD}"/{temp,sources} || dienow # Is it a bzip2 or gzip tarball? DECOMPRESS="" - [ "$1" != "${1/%\.tar\.bz2/}" ] && DECOMPRESS="j" - [ "$1" != "${1/%\.tar\.gz/}" ] && DECOMPRESS="z" + [ "$FILENAME" != "${FILENAME/%\.tar\.bz2/}" ] && DECOMPRESS="j" + [ "$FILENAME" != "${FILENAME/%\.tar\.gz/}" ] && DECOMPRESS="z" cd "${WORK}" && - { tar -xv${DECOMPRESS} -f "${SRCDIR}/$1" -C "${BUILD}/temp" || dienow + { tar -xv${DECOMPRESS} -f "${SRCDIR}/${FILENAME}" -C "${BUILD}/temp" || dienow } | dotprogress - mv "${BUILD}/temp/"* "${SRCTREE}/${BASENAME}" && + mv "${BUILD}/temp/"* "${SRCTREE}/${PACKAGE}" && rmdir "${BUILD}/temp" && echo "$SHA1TAR" > "$SHA1FILE" @@ -137,12 +138,12 @@ # Apply any patches to this package - ls "${SOURCES}/patches/$BASENAME"-* 2> /dev/null | sort | while read i + ls "${SOURCES}/patches/${PACKAGE}"-* 2> /dev/null | sort | while read i do if [ -f "$i" ] then echo "Applying $i" - (cd "${SRCTREE}/${BASENAME}" && patch -p1 -i "$i") || dienow + (cd "${SRCTREE}/${PACKAGE}" && patch -p1 -i "$i") || dienow sha1file "$i" >> "$SHA1FILE" fi done @@ -162,7 +163,7 @@ fi [ -z "$EXTRACT_ALL" ] && return 0 - extract "$FILENAME" + PACKAGE="$(basename "$FILENAME")" extract "$FILENAME" return $? fi