Mercurial > hg > aboriginal
changeset 989:93830ce35f85
Make extract use unique temporary directories so it's parallelizable.
author | Rob Landley <rob@landley.net> |
---|---|
date | Mon, 01 Mar 2010 01:03:04 -0600 |
parents | 30e4bab11f9e |
children | 00704bb2c556 |
files | sources/functions.sh |
diffstat | 1 files changed, 14 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/sources/functions.sh Wed Feb 24 10:31:10 2010 -0600 +++ b/sources/functions.sh Mon Mar 01 01:03:04 2010 -0600 @@ -241,22 +241,26 @@ [ -z "$SHALIST" ] && return 0 fi - echo -n "Extracting '${PACKAGE}'" - # Delete the old tree (if any). Create new empty working directories. - rm -rf "${BUILD}/temp" "${SRCTREE}/${PACKAGE}" 2>/dev/null - mkdir -p "${BUILD}"/{temp,packages} || dienow - # Is it a bzip2 or gzip tarball? DECOMPRESS="" [ "$FILENAME" != "${FILENAME/%\.tar\.bz2/}" ] && DECOMPRESS="j" [ "$FILENAME" != "${FILENAME/%\.tar\.gz/}" ] && DECOMPRESS="z" - { tar -xv${DECOMPRESS} -f "${SRCDIR}/${FILENAME}" -C "${BUILD}/temp" || dienow - } | dotprogress + echo -n "Extracting '${PACKAGE}'" + + ( + trap 'rm -rf "$BUILD/temp-'$$'"' EXIT + # Delete the old tree (if any). + rm -rf "${SRCTREE}/${PACKAGE}" 2>/dev/null + mkdir -p "${BUILD}"/{temp-$$,packages} || dienow - mv "${BUILD}/temp/"* "${SRCTREE}/${PACKAGE}" && - rmdir "${BUILD}/temp" && - echo "$SHA1TAR" > "$SHA1FILE" + { tar -xv${DECOMPRESS} -f "${SRCDIR}/${FILENAME}" -C "${BUILD}/temp-$$" || + dienow + } | dotprogress + + mv "${BUILD}/temp-$$/"* "${SRCTREE}/${PACKAGE}" && + echo "$SHA1TAR" > "$SHA1FILE" + ) [ $? -ne 0 ] && dienow